АСОСҲОИ АЛГОРИТМ ВА БАРНОМАСОЗӢ БО ЗАБОНИ PYTHON

Усули интихоб
Дар усули интихобӣ хурдтарин унсури қисми коркарднашуда ёфта, ба аввали он қисм гузаронда мешавад. Ин амал барои мавқеъҳои навбатӣ такрор мегардад.
Тағйирёбандаи i мавқеи ҷорӣ, j индекси санҷидашаванда ва n_min индекси хурдтарин унсури ёфтшударо нигоҳ медоранд.
a = [7, 3, 9, 1, 5] n = len(a)
for i in range(n - 1):
n_min = i
for j in range(i + 1, n):
if a[j] < a[n_min]:
n_min = j if i != n_min:
a[i], a[n_min] = a[n_min], a[i]
print(a) Натиҷа:
[1, 3, 5, 7, 9] Дар ҳар гузариш хурдтарин унсури қисми боқимонда ёфта шуда, ба мавқеи i гузошта мешавад.
Мураттабсозии зуд — quicksort
Усулҳои ҳубобчавӣ ва интихобӣ дар ҳолати умумӣ O(n²) амал талаб мекунанд. quicksort ба ҳисоби миёна O(n log n), вале дар бадтарин ҳолат O(n²) вақт мегирад.
Дар quicksort қимати такягоҳӣ интихоб мешавад. Унсурҳо нисбат ба он ба қисмҳо ҷудо шуда, ҳар қисм рекурсивӣ мураттаб мегардад. Қимати такягоҳӣ ҳатман медиана нест.
Барои фаҳмидани моҳияти усул, биёед ба як мисол назар андозем.
Фарз мекунем, ки мо массив дорем:

Барномасозӣ
Олами Афсонаҳо
Ахбор
Саломатӣ
Дунё