Jeśli potrzebujemy wdrożenia funkcji, która wymagatablica liczb całkowitych i zwraca maksymalną liczbę całkowitą w kolekcji, przy założeniu, że długość tablicy jest mniejsza niż 1000. Czy używałbyś Sortowania bąbelkowego lub Sortowania scalonego i dlaczego?
Co się stanie z powyższym wyborem algorytmu,jeśli długość macierzy jest większa niż 1000? Jestem nieco zdezorientowany, dlaczego powinienem użyć konkretnego algorytmu na innym. Czy to właśnie ze względu na swoją złożoność i czas lub inne czynniki również w to zaangażowane? Co się stanie, jeśli będę musiał przetestować powyższą funkcję i która zajmie dużo więcej czasu na prosty algorytm, a mniej na złożony?
Odpowiedzi:
18 dla odpowiedzi № 1W ogóle bym sobie nie poradził, przeszedłem tylko przez tablicę i śledziłem największy z nich. Zajmuje to czas O (N), podczas gdy algorytmy sortowania zwykle nie są lepsze od O (N * log (N)).
3 dla odpowiedzi № 2
Ta strona kołysze
http://www.sorting-algorithms.com/
2 dla odpowiedzi nr 3
Cóż, jeśli MUSISZ sortować, użyj sortowania scalaniaponieważ jest o wiele szybszy niż sortowanie bąbelkowe - w przypadku 1000 elementów i jednego rodzaju prawdopodobnie nie zauważysz różnicy na nowoczesnym komputerze, ale w przypadku większej liczby elementów (myślę> 10 000) różnica staje się nie do zaakceptowania.
0 dla odpowiedzi nr 4
Pozwala wywołać długość twojej tablicy N.
Sortowanie tablicy za pomocą Bubble Sort zajmuje mniej więcej tyle, ile wynosi N * N jednostek czasu.
Sortowanie za pomocą funkcji Sortowanie w porządku odbywa się w kolejności N * log N jednostek czasu.
Po prostu patrzenie na każdy element jeden po drugim i śledzenie, który z nich jest największy, będzie przyjmowało N jednostek czasu.
Dlatego używaj ostatniej metody.