ncsort.go — karkasas
Sukurk ncsort.go (žr. dešinėje). Šeši parašai, ir vienas reikalavimas
skiriasi nuo visų ankstesnių pamokų.
cmp.Hit() — nė karto
Iki šiol skaitikliai skaičiavo, kiek palyginimų. Čia testas reikalauja, kad jų būtų lygiai nulis.
cmp parametras vis tiek yra — kad parašas sutaptų su kitais rikiavimais ir kad
testas galėtų įrodyti, jog skaičius nulinis. Jei kur nors atsiras cmp.Hit(),
tai jau nebe skaičiavimo rikiavimas.
moves.Hit() lieka: po vieną kiekvienam į rezultatą įrašytam elementui.
Ką testas tikrins
CountingSortByRating— teisinga tvarka, 0 palyginimų, lygiai n judesių ir stabilumas;RadixSortByYear— teisinga tvarka, 0 palyginimų;RadixSortByYearUnstable— privalo nesurikiuoti, ir privalo atlikti tiek pat darbo kaip stabilus variantas.
Paskutinis punktas neįprastas: rašai funkciją, kuri turi būti neteisinga. Ji sugadinta tyčia, viena ciklo kryptimi, ir 7 žingsnyje pamatysi, kam.
Rėžiai, kuriuos jau turi
CountingSortByRating naudoja MinRating ir MaxRating iš item.go —
konstantas, kurias parašei pirmoje pamokoje. yearDigit ir countingPass dirba
su Year.
Nieko naujo pridėti nereikia. Prielaida, kurios reikia šiai pamokai, jau įrašyta tavo duomenų tipe aštuonios pamokos.