Š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?
- „Skaldyk ir užkariauk“ požiūris
- „Merge Sort“ diegimas „Python“
- Sujungimo rūšiavimo diegimo schema
- Privalumai ir naudojimas
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]
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ą.