Jeśli masz algorytm szybkiego sortowania i zawsze wybierasz najmniejszy (lub największy) element jako element przestawny; czy mam rację zakładając, że jeśli dostarczysz już posortowany zestaw danych, zawsze uzyskasz najgorsze wyniki niezależnie od tego, czy twoja „już posortowana” lista jest w porządku rosnącym czy malejącym?
Myślę, że jeśli zawsze wybierzesz najmniejszy element dla swojego elementu przestawnego, to to, czy Twoje „już posortowane” dane wejściowe są sortowane według rosnącego czy malejącego, nie ma znaczenia, ponieważ podzbiór wybrany do sortowania względem twojego elementu przestawnego zawsze będzie ten sam rozmiar?
Odpowiedzi:
W najgorszym przypadku złożoność szybkiego sortowania to . Osiąga się to poprzez wybieranie osi przestawnych, które dzielą zestaw tak, że jedna grupa ma tylko jednego członka. Przy złym algorytmie pobierania osi obrotowej można to łatwo osiągnąć, wybierając jeden koniec posortowanego zestawu. Twoje założenie jest prawidłowe.Θ(n2)
źródło
Tak! Myślisz, że ma absolutną rację! Jak słusznie wspomniał Yuval Filmus, czas działania wyniesieΘ(n2)
źródło
Jedna podtablica będzie miała lub element, podczas gdy druga będzie miała elementy; stąd jest :0 1 (n−1) O(n2)
źródło