#informatyka #strukturydanych #algorytmy

Czy w kolejce oznaczmy ją S mój head to S.head = 3 a tail S.tail = 1, to czy po Dequeue head dalej utrzymuje się na 3 indeksie czy jednak przechodzi na S.head = 4?
Teoretycznie kolejka jako struktura danych działa jako kolejka w sklepie, więc head powinien być na 4 indeksie teraz, ale w książce Cormena po zrobieniu Dequeue dalej u niego
  • Odpowiedz
#anonimowemirkowyznania
Mirki, kończę zaraz studia informatyczne w polszy. Miałem na nich algorytmy i struktury danych, ale jakoś zignorowałem i przebrnąłem przez ten przedmiot z pomocą znajomych i internetu nie wkładając większego wysiłku w ten przedmiot.

Jednak po czasie czytałem sobie reddit i natknąłem się na specyficzny wpis, no i okazuje się, że często bardziej odpowiedzialne pracki jako programista wymagają srogiej wiedzy z algo i struktur danych i trzeba to implementować, albo używać przy pracy. Ktoś tam podzielił właśnie programistów na klepaczy CRUDów i programistów którzy używają algorytmów w swojej pracy. Nie wiem czy to sfrustrowany kucyk i tworzenie sekty w tej branży, czy faktycznie prawda. Potem poczytałem na necie, no i coś w tym jest, niektorzy też tak twierdzą.

Jako, że ja mam ZEROWE (oprócz praktyk wykonanych na studiach i krótkiego stażu) pojęcie o rynku, to pytam - to nie jest na celu umniejszenia KOMUKOLWIEK. Jak to wygląda naprawdę? Ludzie, co mają mniejszą znajomość algorytmów słabiej sobie radzą w pracy, albo mniej zarabiają klepiąc crudy? Jak w ogóle szukać pierwszej pracy i czy opłaca trafić się na takiego cruda na pierwszą pracę, czy nie? No i jak rozpoznać taką pracę?
@kywmn: Powoli, spokojnie. Nigdzie nie napisałem, że lubię funkcje, które mają 3k linii kodu. Wręcz przeciwnie. Do tego potrzebny jest zdrowy rozsądek i logika. Podobnie, nie lubię kiedy mam tysiące klas i miliony wzorców projektowych.
  • Odpowiedz
@AnonimoweMirkoWyznania: nie sugeruj się redditem, oni głównie mówią o rynku amerykańskim gdzie firmy rzeczywiście testują w ten sposób bo zgapiają proces rekrutacyjny od gigantów typu Google czy Facebook. Te firmy z kolei w większości są nastawione na tanią siłę roboczą co oznacza ludzi świeżo po studiach - więc testują wiedzę ze studiów xD jak poczytasz trochę więcej to znajdziesz opinie ludzi którzy strasznie narzekają na to że muszą sobie odświeżać
  • Odpowiedz
Chyba ogarniam to troche ale nie wiem jak to ubrać w słowa


@Luk_1mex: Jak nie wiesz jak ubrać w słowa, to znaczy, że nie ogarniasz ani trochę ( ͡° ͜ʖ ͡°)

moim zdaniem nie ma różnic.


@ananasowa_pythonistka: studia są dla programistów zupełnie nieprzydatne, no nie?
  • Odpowiedz
@Luk_1mex: stos jest strukturą typu LIFO. Możesz pobrać tylko element ostatnio dodany. Lista daje Ci dostęp do dowolnego elementui l modlitwie umieszczania w dowolnym. Lub nie, zależy od implementacji. Chyba że pytałeś o kolejkę, nie listę.
  • Odpowiedz
#programowanie #strukturydanych

Mam problem. Bezproblemowo piszę Listy [LinkedList] jednokierunkowe, dwukierunkowe, cykliczne itd. lecz z wartownikami odpowiednimi.

Mam zadanie:
Przedstaw bezpośrednia realizację (bez wykorzystania klasy List) stosu nieograniczonego. Do przechowywania elementów wykorzystaj jednokierunkową listę wiązaną bez wartownika.
@Zuixiai: Ale jaki tu masz problem? O ile dobrze przeczytałem czym jest wartownik... jeżu, jak ja się będę chciał zatrudnić w polskiej firmie to polegnę na polskich nazwach.
Chcesz zrobić listę jedno kierunkową bez takiego terminatora oznaczającego koniec listy? To co to za problem po prostu sprawdzać czy node.next == null?
  • Odpowiedz
@GotoFinal: Ok, zrobię tak jak mi napisałeś - szybka modyfikacja kodu, za parę dni okaże się czy wykonanie zadania było poprawne czy też nie

Właśnie dokładnie mi się wydaje tak jak piszesz - w końcu gdzieś i w czymś musimy przechowywać dane wartości. Bardzo mi pomogłeś :) Dziękuję.
  • Odpowiedz
dwa algorytmy rozwiązujące ten sam problem
1. klasy O(n)
2. klasy o(n)
- Który doprowadzi do rozwiązania problemu szybciej na dowolnym komputerze?
- Który bedzie lepszy dla bardzo dużych rozmiarów danych?
i dlaczego tak a nie inaczej?
@SzCzoteckY: O(n) - daje funkcje ktorej zlozonosc nie przekroczy. To z jaka "dokladnosci" to napiszesz to juz inna sprawa.
Dlatego przejscie po tablicy jest O(n) <= O(n^3) <= O(n^7) itd...
  • Odpowiedz
@Szab: Wydaje mi sie ze nie. Majac drzewo zrownowazone masz zapewnione ze proces dodawania i wyszukiwania jest w czasie logn. Zakladajac ze kazdy node trzyma sume swoich dzieci + swoja wartosc. To znalezienie i-node to jest operacja koszt to logn (znalezienie noda o pozycji x i zwrocenie jest wartosci plus sumy prawego dziecka - masz wtedy sume od i do roota). Potem szukasz j-node. Majac go (koszt logn) zwracasz wartosc
  • Odpowiedz
Czy jest w javie jakaś taka szprytna mapa (może byc zewnętrzna biblioteka) która ma domyślnie jako value listę? (Taką listę wewnętrzną)- skorelowaną z keyem, i z łatwym dostępem coś w stylu

mapa.put(key, list.add("value"));

Tak że nie muszę robić oddzielnie obiektu listy i za każdym razem wkładać do mapy

#programowanie #java #strukturydanych
@profesorek92: Właśnie czytam to z Cormena :) tam jest ładnie, elegancko wytłumaczone, bo jednak slajdy z wykładu są robione tak jak jednak powinno się robić slajdy - jako uzupełnienie gadaniny, a nie przekaz całej treści.
  • Odpowiedz