Wpis z mikrobloga

I potem wychodzą "programiści" mistrzowie jednego frameworka i zdziwienie, że zagnieżdżone pętle for to nie jest dobry pomysł.


@yggdrasil: A cóż to za nowa zasada programistyczna? Fowler i Martin już wiedzą? Klasycznie u programisty im durniejsze mądrości, tym wyżej do srania wypina dupę.
  • Odpowiedz
@Tarec: @dan3k: wydajność, bardzo często z takiego O(n^2) można zrobić O(n) wykorzystując dict/hashmap/.

Ale sugerowanie że trzeba się przemęczyć z c++ żeby o tym wiedzieć, jest co najmniej śmieszne.
  • Odpowiedz
@dan3k: To byl przykład tylko. :)

Chodziło mi o to, ze znajomość algorytmiki i zasad działania komputera zanika. Co jest trochę zrozumiałe, kolejny serwer jest tańszy niż programista.
  • Odpowiedz
Dasz jakiś przykład?


@karamba16: wymyślać mi się o tej godzinie już nic nie chce, więc łap rekrutacyjnego klasyka. Problem jest chyba dość dobrze znany, w googlach znajdziesz sporo artykułów tłumaczących dlaczego użycie pętli w pętli jest tutaj złym pomysłem.

W praktyce częściej niż na n^2 trafisz na jakieś n*m, gdzie dla każdego elementu kolekcji x będziesz musiał na przykład dopasować jakieś dane z kolekcji y. W wymyślaniu przykładów z d--y nigdy
  • Odpowiedz
@croppz: zrobilem ten przykład w dość naiwny sposób. Nawet mi do głowy nie przyszedł zagnieżdżony for.
Posortowałem tablicę, element z lewej, element z prawej. Suma za mała - idziemy z lewej do prawej, suma za duża - idziemy z prawej do lewej. Potem kwestia zwrócenia odpowiednich indeksów z wejściowej tablicy i jest szybciej od 86% rozwiązań nadesłanych i z pamięcią lepiej, niż 60% nadesłanych rozwiązań.
  • Odpowiedz