Kaip įdiegti „Merge Sort“ „Python“?



Čia pateikiama paprasta ir lengva pamoka, kaip išmokti naudoti „Merge Sort“ ir sužinoti apie jos algoritmą bei įgyvendinimą „Python“

Šis tinklaraštis yra pagrįstas skaldyk ir užkariauk požiūriu. „Merge Rūšiuoti“ yra „padalink ir užkariauk“ algoritmas, kai problema padalijama į subproblemas ir sujungiama, kad būtų užkariaujamas sprendimas. Šis tinklaraštis „Merge“ rūšiuoti išsamiai apžvelgs toliau pateiktas temas -

Kas yra „Pyge“ sujungimo rūšiavimas?

„Merge Rūšiuoti“ remiasi dalijimo ir užkariavimo algoritmu, kai įvesties masyvas padalijamas į dvi puses, tada rūšiuojamas atskirai ir sujungiamas atgal, kad būtų pasiektas sprendimas. Funkcija sulieti () naudojama surūšiuotam sujungti .





komentarų tipas java

„Skaldyk ir užkariauk“ požiūris

  • Masyvas padalijamas per pusę ir procesas kartojamas su kiekviena puse, kol kiekviena pusė bus 1 arba 0 dydžio.
  • 1 dydžio masyvas yra trivialiai rūšiuojamas.
  • Dabar du surūšiuoti masyvai yra sujungti į vieną didelį masyvą. Tai tęsiama tol, kol visi elementai bus sujungti ir masyvas bus surūšiuotas.

Čia pateikiama sujungimo rūšiavimo vizualizacija, kad išvalytumėte paveikslėlį

Įvesties masyvas = [3,1,4,1,5,9,2,6,5,4]



Sujungti rūšį | „Edureka“ tinklaraščiai | Edureka
Dabar pereikime prie įgyvendinimo.

„Merge Sort“ diegimas „Python“

def mergeSort (nlist): spausdinti ('Spliting', nlist), jei len (nlist)> 1: vidurys = len (nlist) // 2 kairysis = nlist [: vidurys] righthalf = nlist [vidurys:] mergeSort (kairysis) susilietiSort (dešinysis pusė) i = j = k = 0, o aš

Išvestis:

$ python main.py
(„Skaldymas“, [3, 1, 4, 1, 5, 9, 2, 6, 5, 4])
(„Skaldymas“, [3, 1, 4, 1, 5])
(„Skaldymas“, [3, 1])
(„Skaldymas“, [3])
(„Susijungia“, [3])
(„Skaldymas“, [1])
(„Susijungia“, [1])
(„Susijungia“, [1, 3])
(„Skaldymas“, [4, 1, 5])
(„Skaldymas“, [4])
(„Susijungia“, [4])
(„Skaldymas“, [1, 5])
(„Skaldymas“, [1])
(„Susijungia“, [1])
(„Skaldymas“, [5])
(„Susijungia“, [5])
(„Susijungia“, [1, 5])
(„Susijungia“, [1, 4, 5])
(„Susijungia“, [1, 1, 3, 4, 5])
(„Skaldymas“, [9, 2, 6, 5, 4])
(„Skaldymas“, [9, 2])
(„Skaldymas“, [9])
(„Susijungimas“, [9])
(„Skaldymas“, [2])
(„Susijungia“, [2])
(„Susijungia“, [2, 9])
(„Skaldymas“, [6, 5, 4])
(„Skaldymas“, [6])
(„Susijungimas“, [6])
(„Skaldymas“, [5, 4])
(„Skaldymas“, [5])
(„Susijungia“, [5])
(„Skaldymas“, [4])
(„Susijungia“, [4])
(„Susijungia“, [4, 5])
(„Susijungia“, [4, 5, 6])
(„Susijungia“, [2, 4, 5, 6, 9])
(„Susijungia“, [1, 1, 2, 3, 4, 4, 5, 5, 6, 9])
[1, 1, 2, 3, 4, 4, 5, 5, 6, 9]



gauti masyvo javascript dydį

Suvienodinimo rūšiavimo diegimo schema

Sujungimo rūšiavimo pranašumai ir naudojimas

Dauguma kitų algoritmų veikia blogai su nuosekliomis duomenų struktūromis, tokiomis kaip failai ir susieti sąrašai. Šiose struktūrose prieiga prie atsitiktinio elemento reikalauja linijinio laiko, o ne įprasto pastovaus laiko. Sujungimo rūšiavimo pobūdis leidžia tokioms duomenų struktūroms lengvai ir greitai.Viena geriausių sujungimo rūšiavimo savybių yra mažas palyginimų skaičius. Tai daro O (n * log (n)) palyginimų skaičių, tačiau pastovus koeficientas yra geras, palyginti su quicksort, todėl jis yra naudingas, kai palyginimo funkcija yra lėta operacija.Be to, „suskaidyti ir užkariauti“ sujungimo rūšiavimo metodas daro jį patogų lygiagrečiam apdorojimui.

Tuo mes baigėme šį tinklaraštį tema „Kaip įdiegti„ Merge Sort “Python“. Tikiuosi, kad turinys pridėjo tam tikros vertės jūsų žinioms „Python“. Norėdami gauti išsamių žinių apie „Python“ kartu su įvairiomis jo programomis, galite užsiregistruoti tiesiogiai su parą visą parą ir visą gyvenimą.