Tema
/
Algoritmai ir duomenų struktūros GO
Pamoka 9 / 15 Rūšiavimas be palyginimų ~55 min
Kodas

Matavimo aplinka ir nuosprendis

Trys failai, kaip septintoje ir aštuntoje.

ncbench.go prideda algo count ir algo radix. Pirmoji lygina skaičiavimo rikiavimą su palyginimų rikiavimais tam pačiam raktui; antroji paleidžia skaitmeninį rikiavimą abiem vidiniais perėjimais ir parodo skirtumą.

Atkreipk dėmesį į algo radix išvedimą: jis spausdina ne tik sorted?, bet ir pirmą vietą, kur nestabilus variantas lūžta. Klaidos vietos parodymas yra naudingesnis už pranešimą „neteisinga".

ncsort_test.go — nuosprendis, su trimis tvirtinimais, kurių anksčiau nebuvo: nulis palyginimų, lygiai n judesių, ir kad nestabilus variantas nesurikiuoja.

main.go — dvi eilutės.

Kodėl lyginam su tuo pačiu raktu

algo count rikiuoja pagal Rating ir skaičiavimo rikiavimu, ir sort.SliceStable. Tas pats raktas, tie patys duomenys — kitaip palyginimas nieko nereikštų.

Įterpimo rikiavimo eilutė lentelėje rikiuoja pagal Title, ir taip pažymėta. Ji ten dėl masto, ne dėl tiesioginio palyginimo.