Š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?
- Pieeja Šķelt un iekarot
- Apvienošanas kārtošanas ieviešana Python
- Blokshēma apvienošanas kārtošanas ieviešanai
- Priekšrocības un izmantošana
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]
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 esIzeja:
$ 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ībaPlū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.