Paano ipatupad ang Merge Sort sa Python?



Narito ang isang simple at madaling tutorial upang malaman kung paano gamitin ang Merge Sort, at alamin ang tungkol sa algorithm at pagpapatupad nito sa Python

Ang blog na ito ay batay sa diskarte sa paghati at pagsakop. Ang Merge Sort ay isang algorithm na 'hatiin at lupigin' kung saan ang problema ay nahahati sa mga subproblem at pagkatapos ay pinagsama upang masakop ang solusyon. Ang blog na ito sa Merge Sort in dadalhin ka sa mga detalye sa ibaba nang detalyado -

Ano ang Merge Sort sa Python?

Ang Merge Sort ay batay sa hatiin at sakupin ang algorithm kung saan ang input array ay nahahati sa dalawang halves, pagkatapos ay pinagsunod-sunod nang hiwalay at pinagsama pabalik upang maabot ang solusyon. Ang function merge () ay ginagamit para sa pagsasama-sama ng pinagsunod-sunod .





Ang diskarte ng Divide at Conquer

  • Ang array ay nahahati sa kalahati at ang proseso ay paulit-ulit sa bawat kalahati hanggang sa bawat kalahati ay may sukat na 1 o 0.
  • Ang array ng laki ng 1 ay maliit na pinagsunod-sunod.
  • Ngayon ang dalawang pinagsunod-sunod na mga array ay pinagsama sa isang malaking array. At ito ay nagpatuloy hanggang sa ang lahat ng mga elemento ay pinagsama at ang array ay pinagsunod-sunod.

Narito ang isang pagpapakita ng pagsasama-sama ng uri upang i-clear ang larawan para sa iyo

Input Array = [3,1,4,1,5,9,2,6,5,4]



Pagsamahin ang pag-uuri | Edureka Blogs | Edureka
Ngayon, magpatuloy tayo sa pagpapatupad.

kung paano gamitin ang substring sa sql

Pagpapatupad ng Pagsamahin Pagsunud-sunurin sa Python

def mergeSort (nlist): print ('Splitting', nlist) kung len (nlist)> 1: mid = len (nlist) // 2 lefthalf = nlist [: mid] righthalf = nlist [mid:] mergeSort (lefthalf) mergeSort (rrontalf) i = j = k = 0 habang ako

Output:

$ python main.py
('Paghahati', [3, 1, 4, 1, 5, 9, 2, 6, 5, 4])
('Paghiwalay', [3, 1, 4, 1, 5])
('Paghiwalay', [3, 1])
('Paghiwalay', [3])
('Pinagsasama', [3])
('Paghiwalay', [1])
('Pinagsasama', [1])
('Pinagsasama', [1, 3])
('Paghiwalay', [4, 1, 5])
('Paghiwalay', [4])
('Pinagsasama', [4])
('Paghiwalay', [1, 5])
('Paghiwalay', [1])
('Pinagsasama', [1])
('Paghiwalay', [5])
('Pinagsasama', [5])
('Pinagsasama', [1, 5])
('Pinagsasama', [1, 4, 5])
('Pinagsasama', [1, 1, 3, 4, 5])
('Paghiwalay', [9, 2, 6, 5, 4])
('Paghiwalay', [9, 2])
('Paghiwalay', [9])
('Pinagsasama', [9])
('Paghiwalay', [2])
('Pinagsasama', [2])
('Pinagsasama', [2, 9])
('Paghiwalay', [6, 5, 4])
('Paghiwalay', [6])
('Pinagsasama', [6])
('Paghiwalay', [5, 4])
('Paghiwalay', [5])
('Pinagsasama', [5])
('Paghiwalay', [4])
('Pinagsasama', [4])
('Pinagsasama', [4, 5])
('Pinagsasama', [4, 5, 6])
('Pinagsasama', [2, 4, 5, 6, 9])
('Pinagsasama', [1, 1, 2, 3, 4, 4, 5, 5, 6, 9])
[1, 1, 2, 3, 4, 4, 5, 5, 6, 9]



wakasan ang isang programa sa java

Flow Chart para sa pagpapatupad ng Pagsama-sama ng Pagsamahin

Mga Kalamangan at Paggamit ng Pagsasama-sama ng Pag-uuri

Karamihan sa iba pang mga algorithm ay gumaganap ng masama sa mga sunud-sunod na istraktura ng data tulad ng mga file at mga naka-link na listahan. Sa mga istrakturang ito ang pag-access sa isang random na elemento ay tumatagal ng linear na oras, hindi regular na pare-pareho ang oras. At ang likas na katangian ng pagsasama-sama ay ginagawang madali at mabilis para sa mga naturang istruktura ng data.Ang isa sa mga pinakamahusay na tampok ng pagsasama-sama ng uri ay ang mababang bilang ng mga paghahambing. Ginagawa nitong bilang na O (n * log (n)) ang mga paghahambing, ngunit ang pare-pareho na kadahilanan ay mabuti kumpara sa quicksort, na ginagawang kapaki-pakinabang kapag ang pag-andar ng paghahambing ay isang mabagal na operasyon.Gayundin, ang paghati-hati at diskarte ng pagsasama-sama ay ginagawang madali para sa parallel na pagproseso.

Sa pamamagitan nito, natapos namin ang blog na ito sa 'Paano ipatupad ang Pagsamahin ang Pagsunud-sunod sa Python'. Inaasahan kong ang nilalaman ay nagdagdag ng ilang halaga sa iyong kaalaman sa Python. Upang makakuha ng malalim na kaalaman sa Python kasama ang iba't ibang mga application nito, maaari kang magpatala nang live na may 24/7 na suporta at buhay na pag-access.