Page 73 - Программирование. Python. Для школьников. bizdin.kg
P. 73
ТИЗМЕЛЕРДИ СОРТТОО 73
Биз айтып кеткендей сорттоонун ылдамдыгы чоң массивдер менен
иштөөдө маанилүү. Төмөндөгү таблицада кокустук маанилер менен толту-
рулган ар кандай өлчөмдөгү массивдердин биз үйрөнгөн үч алгоритмди
колдонуп сорттоо убактысы (секунда менен) көрсөтүлгөн.
№ Көбүкчө методу Тандоо методу Тез сорттоо
1000 0,09 с 0,05 с 0,002 с
5000 2,4 с 1,2 с 0,014 с
15000 22 с 11 с 0,046 с
Таблицадан көрүнүп тургандай, мисалы 15 миң элементи менен массивди
тез сорттоо, көбүкчө методуна караганда 500 эсе тез иштейт экен.
Мурунку темадан Python тилинде массивди сорттоо үчүн sorted деген
атайын камтылган функция бар экенин билебиз. Ал көптөгөн белгилүү бе-
рилиштер менен оңой иштеген timsort гибриддик алгоритмин колдонот.
Андан тышкары аны жазууда төмөнкүлөрдү эске тутуш керек:
a.sort () #a тизмесинин өзү сорттолот
b = sorted (a) #b массивине өсүү тартибинде сорттолгон a
массиви жайгаштырылат.
Адатта сорттоо өсүү тартибинде же тагыраак айтканда, ар бир кийинки
элемент мурункусунан чоң же барабар болушу керек. Массивди кемүү тар-
тибинде сорттоо үчүн (ар бир кийинки элемент мурункусунан кичине же
ага барабар) сорттоо функциясына reverse = True деп көрсөтүш керек:
b = sorted (a, reverse = True) #же
a.sort (reverse = True)
КОМПЬЮТЕРДИК ПРАКТИКУМ:
1) N элементтен турган бир өлчөмдүү сандык маанидеги массив
берилген. Баштапкы массивдин элементтеринен эки жаңы массив
тургузгула. Биринчисине 3кө бөлүнгөн гана сандар, ал эми экинчисине
5ке бөлүнгөн гана сандар кирсин.
2) Биринчи суроодогу программаны уланткыла жана 3кө бөлүнгөн сан-
дарды өсүү тартибинде, ал эми 5ке бөлүнгөн сандарды кемүү тарти-
бинде жайгаштыра тургандай кылып программаны толуктагыла.
www.trk.kg