Tema
/
Algoritmai ir duomenų struktūros GO
Pamoka 8 / 15 Efektyvus rūšiavimas ~60 min
Kodas

Matavimo aplinka ir nuosprendis

Trys failai, kaip ir septintoje pamokoje: matavimo aplinka, testas ir dvi eilutės main.go.

dcbench.go prideda dvi komandas. algo dc paleidžia visus keturis algoritmus ta pačia tvarka ir surašo skaičius; algo stable yra aštuonių eilučių demonstracija, kurią pamatysi kitame žingsnyje.

Kaip ir septintoje, kiekvienas matavimas pirma patikrina rezultatąisSortedByTitle. Neteisingo rikiavimo greitis nieko nereiškia.

dcsort_test.go — nuosprendis. Jame yra dvi neįprastos vietos:

TestQuickSortIsNotStable tvirtina trūkumą. Tai ta pati forma, kaip septintos pamokos išrinkimo rikiavimo testas: jei tavo greitasis rikiavimas staiga taps stabilus, testas praneš — ir tada verta pažiūrėti, ko tai kainavo.

TestNaivePivotIsQuadraticOnSortedInput tvirtina blogiausią atvejį. Ne „lėtas", o lygiai n(n−1)/2. Ši eilutė egzistuoja tam, kad klaida liktų užrašyta, o ne būtų tyliai pataisyta ir pamiršta.