Kolejki priorytetów mają wartość priorytetu i dane dla każdego wpisu.Wydajny sposób na wdrożenie kolejki priorytetowej w JavaScript?
W ten sposób, dodając nowy element do kolejki, bąbelkuje do powierzchni, jeśli ma wartość wyższego priorytetu niż elementy już w kolekcji.
Po wywołaniu popu otrzymujemy dane dla elementu o najwyższym priorytecie.
Co to jest wydajne wdrożenie takiej kolejki priorytetowej w JavaScript?
Czy ma sens mieć nowy obiekt o nazwie PriorityQueue, tworzyć dwie metody (push i pop), które pobierają dwie parametry (dane, priorytet)? To ma dla mnie sens jako koder, ale nie jestem pewien, jakiej struktury danych użyć w podbrzuszu, która pozwoli na manipulację uporządkowaniem elementów. Czy możemy po prostu przechowywać wszystko w tablicy i przejść przez tablicę za każdym razem, aby pobrać element z maksymalnym priorytetem?
Co to jest dobry sposób na zrobienie tego?
Cool, wielkie dzięki !Zastanawiam się: czy bardziej sensowne jest używanie 2 oddzielnych tablic w implementacji (jedna dla danych i jedna dla priorytetu, i po prostu mieć dane [i] i priorytet [i] być tą samą "parą") lub użyć Tablica 2d [] []? Ponieważ pierwsza opcja używa tylko przestrzeni 2n, ale druga może użyć do n^2 – sova
Po prostu użyłbym jednej tablicy. Obie opcje używają przestrzeni '2n', ponieważ każdy wiersz w wielowymiarowej tablicy ma tylko dwa elementy (stała długość). – gyre
aha Widzę! dzięki znowu przyjaciel, bardzo pomocny. – sova