Milyen algoritmust javasoltok lent leírt feladathoz? Ne tartalmazzon asszociatív tömböt.
Szeretnék egy függvényt, aminek a bemenő paramétere egy integer tömb. A tömbben ugyanaz a szám többször is szerepehet. A számok gyakorisága szerint kell sorba rendezni a tömböt. Pl a bemenet: [2,3,1,2,3,1,2,5]
kimenet: [5,3,3,1,1,2,2,2]
Bűn ilyen kódot írni, de működik.
template<typename Iter, typename T>
auto MyCount(Iter first, Iter last, const T& value)
{
size_t count = 0;
while (first < last)
{
if (*first++ == value) { ++count; }
}
return count;
}
template<typename Iter, typename Pred>
void MySort(Iter first, Iter last, Pred pred)
{
bool not_sorted = true;
auto saveFirst = first;
while (not_sorted)
{
not_sorted = false;
while (first != last - 1)
{
if (pred(*first, *(first + 1)))
{
std::swap(*first, *(first + 1));
not_sorted = true;
}
++first;
}
first = saveFirst;
}
}
int main(int argc, char *argv[])
{
std::vector<int> v = {2,3,1,2,3,1,2,5};
MySort(v.begin(), v.end(), [&](const auto& a, const auto& b)
{
if (MyCount(v.begin(), v.end(), a) == MyCount(v.begin(), v.end(), b) && a < b)
{
return true;
}
return MyCount(v.begin(), v.end(), a) > MyCount(v.begin(), v.end(), b);
});
return 0;
}
Aki egy egyszerű rendező algoritmus megírásával nem boldogul, az sehova se fog kelleni. Mi lesz veled akkor, ha vmi sokkal bonyibbat kérnek, és te összehugyozod magad a határidő végén, mert az interjúztatód, vagy rosszabb esetben a munkatársaid majd hülyék lesznek megoldani, HELYETTED?
Szerintem még most válts képzést, mert kontár "programozó" sehova se fog kelleni, minden profitorientált, jól fizető cég ki fog lökni magából téged már az interjún, nemhogy próbaidőn.
A legtöbb helyen rendező algoritmust legfeljebb interjú feladatként írsz. Élesben a nálad okosabb emberek által megírt algoritmust használod, amit már agyon optimalizáltak. A megírása pedig abból áll, hogy tanulmányozod az algoritmust és implementálod programnyelvre, nem feltalálod.
Másrészt ezt a feladatot amúgy is asszociatív tömbbel oldanák meg élesben.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!