Увод у сортирање хепа у Питхон-у

Било који од програмских језика пружа различите функције захваљујући унапред дефинисаним функцијама. Употребом унапред дефинисаних метода и функција које нуди програмски језик може се развити сложена апликација. Када говоримо о претварању вредности листе у сортирани облик, приступ се назива сортирање. Иако је излаз сортирања исти без обзира на приступ сортирању, најбољи приступ осигурава ефикасност сортирања података. Кад је у питању сортирање помоћу програмског језика питхон, имамо сорт (() методу која једноставно може прихватити вредност и сортирати је узлазним редоследом. У овом ћемо чланку научити како сортирати податке матрице у узлазном редослиједу помоћу хеап сортирања и употребљават ћемо програмски језик питхон за извођење коде имплементације велике количине.

Како Хеап Сорт дјелује у Питхон-у?

  • Пре него што објасним рад Питхона, важно је схватити шта је то заправо и како се разликује од осталих алгоритама за сортирање. Хеапсорт се може сматрати приступом сортирања у коме се максимална вредност са пописа сусреће и пребацује на последњи низ, а поступак се понавља док се листа не трансформише у сортирану листу. Начин на који се то разликује од осталих метода сортирања није ништа друго до само приступ који следи како би се сортирали све вредности поља. Састоји се од рекурзивног процеса који траје све док се вредности у низу не пореде по растућем редоследу.
  • Сада ћемо да разумемо како врста сортирања ради детаљно помоћу примера. Претпоставимо да је арр низ који садржи вредности попут 9, 5, 2. У почетку се вредности низа не поредају на сортирани начин, али након извођења хеап сортирања биће претворене у узлазни редослед. Када се алгоритам сортирања нагомилав примијени на овај низ, прва ствар коју ће учинити је пронаћи нашу највећу вриједност у низу. Како је 9 највећа вредност, она ће се преместити на последњи индекс листе, а све остале вредности померити ће се један корак лево да би се створио простор за задржавање највеће вредности. Након што се 9 помакне на задњи индекс или низ поља, листа вриједности ће изгледати 5, 2, 9.
  • Сада још увек није сортиран низ што указује да се исти поступак мора поновити. Сада, док пронађемо највећу вредност са листе необрађених вредности, 5 ће бити изабрана као друга највећа вредност и биће пресељена у други последњи индекс. Након померања 5 на другом последњем положају, низ ће се претворити у сортирани низ, а вредности ће бити распоређене у узлазном редоследу као 2, 5, 9. То ради на начин на који хрпа ради. У стварном смислу, она идентифицира максималну вриједност и премјешта је на крај матрице и наставља изводити исти поступак док се матрица не претвори у разврстани низ.

Примери за примену сортирања хеап-а у Питхон-у

Да бисмо научили концепт грознице, схватимо га користећи стварни пример. Ми ћемо имплементирати алгоритам сортирања хеап-а користећи језик питхон. Да бисмо развили програм, ми ћемо користити петљу фор да доведемо механизам рекурзије и користићемо ако провјере услова за провјеру услова. У доњем коду перформ_хеапсорт је функција која прихвата три аргумента: вал_арр, нум и цоунт, при чему је вар_арр низ, а нум и цоунт су целог броја података. Идеја доњег кода је пронаћи највећи број и задржати га привремено у мак_вал променљивој све док се он не помакне на крај матрице. Ако се изјава користи да се осигура да се највећа вредност премешта у одговарајућу позицију и да се та позиција спречава да се ажурира за следећу највећу вредност на листи. Програм ће поновити приступ проналажењу највеће вредности и преместити га до краја све док листа не буде смештена у сортирану.

Шифра:

def perform_heapsort(val_arr, num, count):
max_val = count
counter1 = 2 * count + 1
counter2 = 2 * count + 2
if counter1 < num and val_arr(count) < val_arr(counter1):
max_val = counter1
if counter2 < num and val_arr(max_val) < val_arr(counter2):
max_val = counter2
if max_val != count:
val_arr(count), val_arr(max_val) = val_arr(max_val), val_arr(count) perform_heapsort(val_arr, num, max_val)
def heapSort(val_arr):
num = len(val_arr)
for count in range(num, -1, -1):
perform_heapsort(val_arr, num, count)
for count in range(num-1, 0, -1):
val_arr(count), val_arr(0) = val_arr(0), val_arr(count) # swap
perform_heapsort(val_arr, count, 0)
val_arr = ( 52, 91, 64, 252, 36, 91, 5, 35, 28) heapSort(val_arr)
num = len(val_arr)
print ("Values after performing heapsort")
for count in range(num):
print ("%d" %val_arr(count)),

У овом програму вредности су додељене ручно преко кода. Вар_арр је низ који садржи вриједности. У овом примјеру смо низу додијелили 9 вриједности. Вриједности у пољу ће се прослиједити методи која се зове перформ_хеапсорт. Једном када вредности уђу у методу, оне ће се обрадити и програм ће започети проналажење највеће вредности са листе. Максимална вредност у овом пољу је 252, тако да ће он бити помјерен на крај матрице и тај ће се поступак примјењивати на све вриједности док се матрица не претвори у поредани низ. Једном када се низ сортира по програму, излаз ће бити приказан у излазу.

Излаз:

Закључак

Хеапсорт је један од различитих алгоритама за сортирање. Евентуални излаз овог алгоритма је сортирана листа која има податке поредане узлазним редоследом. Како се поступак понавља и сваки пут када се све вредности померају улево да би се прилагодила максимална вредност листе на крају матрице, сматра се мање ефикасним алгоритмом сортирања. Овакав приступ сортирању може се користити у апликацији која треба да обрађује мали број вредности.

Препоручени чланци

Ово је водич за Хеап Сорт ин Питхон. Овдје смо разговарали о уводу у Хеап Сортинг у Питхон-у, како Хеап Сорт дјелује на Питхон-у и примјерима за имплементацију Хеап Сортинг-а у Питхон-у. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -

  1. Шта је рачунарска наука?
  2. Шта је машинско учење?
  3. Безбедност веб апликација
  4. Особине Питхон-а
  5. Водич за сортирање алгоритама у Питхон-у

Категорија: