Kā ieviest Merge Sort Python?



Šeit ir vienkārša un vienkārša apmācība, lai uzzinātu, kā izmantot sapludināšanas kārtojumu, kā arī uzziniet par tā algoritmu un ieviešanu Python

Šis emuārs ir balstīts uz sadalīšanas un iekarošanas pieeju. Apvienot kārtošanu ir “dalīt un iekarot” algoritms, kurā problēma tiek sadalīta apakšproblēmās un pēc tam tiek apvienota, lai iekarotu risinājumu. Šis emuārs vietnē Merge Kārtot detalizēti iepazīstinās jūs ar tālāk norādītajām tēmām -

Kas ir apvienošanas kārtojums Python?

Sapludināšanas kārtošanas pamatā ir dalīšanas un iekarošanas algoritms, kurā ievades masīvs tiek sadalīts divās pusēs, pēc tam kārtots atsevišķi un apvienots atpakaļ, lai sasniegtu risinājumu. Funkcija apvienot () tiek izmantota sakārtoto apvienošanai .





php ievietojiet $ tabulā

Pieeja Šķelt un iekarot

  • Masīvs tiek sadalīts uz pusēm un procesu atkārto ar katru pusi, līdz katra puse ir 1 vai 0 izmēra.
  • 1. izmēra masīvs ir triviāli sakārtots.
  • Tagad abi sakārtotie masīvi ir apvienoti vienā lielā masīvā. Un tas tiek turpināts, līdz visi elementi ir apvienoti un masīvs ir sakārtots.

Šeit ir apvienošanas kārtošanas vizualizācija, lai attēla tīrīšana jums būtu pieejama

Ievades masīvs = [3,1,4,1,5,9,2,6,5,4]



Apvienot šķirošanu | Edureka emuāri | Edureka
Pārejam pie ieviešanas.

Apvienošanas kārtošanas ieviešana Python

def mergeSort (nlist): drukāt ('Splitting', nlist), ja len (nlist)> 1: mid = len (nlist) // 2 lefthalf = nlist [: mid] righalf = nlist [mid:] mergeSort (kreisais) mergeSort (labais) i = j = k = 0, kamēr es

Izeja:

$ python main.py
(“Sadalīšana”, [3, 1, 4, 1, 5, 9, 2, 6, 5, 4])
(‘Sadalīšana’, [3, 1, 4, 1, 5])
(‘Sadalīšana’, [3, 1])
(‘Sadalīšana’, [3])
(‘Apvienošanās’, [3])
(‘Sadalīšana’, [1])
(‘Apvienošanās’, [1])
(‘Apvienošanās’, [1, 3])
(‘Sadalīšana’, [4, 1, 5])
(‘Sadalīšana’, [4])
(‘Apvienošanās’, [4])
(‘Sadalīšana’, [1, 5])
(‘Sadalīšana’, [1])
(‘Apvienošanās’, [1])
(‘Sadalīšana’, [5])
(‘Apvienošanās’, [5])
(‘Apvienošanās’, [1, 5])
(‘Apvienošanās’, [1, 4, 5])
(‘Apvienošanās’, [1, 1, 3, 4, 5])
(“Sadalīšana”, [9, 2, 6, 5, 4])
(‘Sadalīšana’, [9, 2])
(‘Sadalīšana’, [9])
(‘Apvienošanās’, [9])
(‘Sadalīšana’, [2])
(‘Apvienošanās’, [2])
(‘Apvienošanās’, [2, 9])
(“Sadalīšana”, [6, 5, 4])
(“Sadalīšana”, [6])
(‘Apvienošanās’, [6])
(‘Sadalīšana’, [5, 4])
(‘Sadalīšana’, [5])
(‘Apvienošanās’, [5])
(‘Sadalīšana’, [4])
(‘Apvienošanās’, [4])
(‘Apvienošanās’, [4, 5])
(‘Apvienošanās’, [4, 5, 6])
(‘Apvienošanās’, [2, 4, 5, 6, 9])
(‘Apvienošanās’, [1, 1, 2, 3, 4, 4, 5, 5, 6, 9])
[1, 1, 2, 3, 4, 4, 5, 5, 6, 9]



tablo soli pa solim apmācība

Plūsmas diagramma apvienošanas kārtošanas ieviešanai

Apvienošanas kārtošanas priekšrocības un izmantošana

Lielākā daļa citu algoritmu darbojas slikti ar secīgām datu struktūrām, piemēram, failiem un saistītajiem sarakstiem. Šajās struktūrās piekļuve nejaušam elementam prasa lineāru laiku, nevis regulāru nemainīgu laiku. Apvienošanas veida dēļ šāda datu struktūra to padara vienkāršu un ātru.Viena no labākajām apvienošanas kārtības īpašībām ir tā zemais salīdzinājumu skaits. Tas padara O (n * log (n)) salīdzinājumu skaitu, bet konstants koeficients ir labs, salīdzinot ar quicksort, kas padara to noderīgu, ja salīdzināšanas funkcija ir lēna darbība.Arī apvienošanas šķirošanas pieeja sadalīt un iekarot padara to ērtu paralēlai apstrādei.

Ar to mēs esam nonākuši pie šī emuāra beigām “Kā ieviest sapludināšanas kārtojumu Python”. Es ceru, ka saturs pievienoja zināmu vērtību jūsu zināšanām Python. Lai iegūtu padziļinātas zināšanas par Python kopā ar dažādām lietojumprogrammām, varat reģistrēties tiešraidē ar diennakts atbalstu un piekļuvi visu mūžu.