Isang Panimula sa Algorithm ng Pagkakasunud-sunod ng Pagpasok

Isang Panimula sa Algorithm ng Pagkakasunud-sunod ng Pagpasok

Ang Insertion Sort ay isang diskarte na gumagana sa pamamagitan ng paggamit ng isang pinagsunod-sunod na sublist at patuloy na pagdaragdag ng isang halaga dito mula sa hindi pa naiuri na listahan hanggang sa maayos ang buong listahan.





Nagsisimula ang algorithm sa unang item sa listahan bilang pinagsunod-sunod na sublist. Pagkatapos ihinahambing ang susunod na numero sa una. Kung ito ay mas malaki, pagkatapos ay naipasok sa unang index. Kung hindi man, naiwan ito sa index nito.





Ang ikatlong halaga pagkatapos ay ihinahambing sa iba pang dalawa, at pagkatapos ay ipinasok sa tamang index. Nagpapatuloy ang prosesong ito hanggang sa maayos ang buong listahan.





Isang Malapit na Pagtingin sa Pag-uri-uriin ng Pagpapasok

Ang paglalarawan sa itaas ay maaaring hindi magkaroon ng kahulugan sa iyo. Ang isang halimbawa ay dapat makatulong sa iyo na higit na maunawaan.

Ipagpalagay na mayroon kang isang listahan: [39, 6, 2, 51, 30, 42, 7].



Kinikilala ng algorithm ang 39 bilang unang halaga ng pinagsunod-sunod na sublist. Ang pagsusuri ay pagkatapos ay lumipat sa ikalawang posisyon.

Kaugnay: Dynamic na Programming: Mga Halimbawa, Karaniwang Mga problema, at Solusyon





Pagkatapos ay ihinahambing ang 6 sa 39. Yamang ang 6 ay mas mababa sa 39, 6 ay naipasok sa unang posisyon at 39 sa pangalawa. Ang bagong order ng listahan ay matapos ang unang pumasa ngayon:

[6, 39, 2, 51, 30, 42, 7]





Ang pagsusuri ay lumilipat sa pangatlong posisyon. Ang 2 ay inihambing sa huling dalawang numero at pagkatapos ay naipasok sa tamang posisyon. Ang bagong order ng listahan ay pagkatapos ng pangalawang pass ay ngayon:

[2, 6, 39, 51, 30, 42, 7]

Para sa pangatlong pumasa, ang order ng listahan ay:

[2, 6, 39, 51, 30, 42, 7]

Ang proseso ay inuulit hanggang sa ang buong listahan ay pinagsunod-sunod.

Tingnan ang diagram sa ibaba na nagbubuod sa mga pagpapatakbo na ito:

Pagsusuri sa algorithm

Ang pagiging kumplikado ng oras ng Insertion Sort ay O (n2), kagaya ng pag-uuri ng bubble . Ang bilang ng mga paghahambing sa pinakapangit na sitwasyon na pang-kaso ay ang kabuuan ng lahat ng mga integer mula 1 hanggang (n-1), na nagbibigay ng isang parisukat na kabuuan.

Pagpapatupad ng Code

Ipinapakita ng code ng Python at Java sa ibaba kung paano mo maipapatupad ang pamamaraan ng Pagpasok ng Pag-uri.

Sawa:

def insertionSort(mylist):
for step in range(1, len(mylist)):
current_element = mylist[step]
position = step
while position > 0 and mylist[position - 1] > current_element:
mylist[position] = mylist[position - 1]
position = position - 1
mylist[position] = current_element

Java:

void insertionSort(int[] myarray) {
int n = myarray.length;
for (int x = 1; x int key = myarray[x];
int y = x-1;
while ( (y > -1) && ( myarray [y] > key ) ) {
myarray [y+1] = myarray [y];
y--;
}
myarray[y+1] = key;
}
}

Mas Mahusay na Coding Sa Pseudocode

Ang mga halimbawa ng code sa itaas ay ibinigay nang walang anumang pseudocode na maaari mong sanggunian upang isulat ang algorithm na ito sa ibang mga wika. Karamihan sa mga programmer (kasama ang may-akda) ay nais na tumakbo sa kanilang mga keyboard pagkatapos masabihan ng 'pagbulong' tungkol sa kung paano gumagana ang isang programa.

Ang pamamaraang ito ay sa kasamaang palad madaling kapitan ng pagkakamali habang ang lohika ng programa ay nagiging mas kumplikado. Paano mo nais na antasin ang iyong laro sa programa sa pamamagitan ng pag-aaral kung paano gamitin ang pseudocode?

Magbahagi Magbahagi Mag-tweet Email Ano ang Pseudocode at Paano Ito Gumagawa sa Iyo ng Mas Mahusay na Developer?

Nagpupumilit na malaman ang pag-program? Kumuha sa mahigpit na pagkakahawak sa code sa pamamagitan ng pag-aaral ng pseudocode. Ngunit ano ang pseudocode at makakatulong talaga ito?

Basahin Susunod
Mga Kaugnay na Paksa
  • Programming
  • Java
  • Sawa
  • Mga Tutorial sa Coding
Tungkol sa May-akda Jerome Davidson(22 Mga Artikulo Na-publish)

Si Jerome ay isang Staff Writer sa MakeUseOf. Saklaw niya ang mga artikulo sa Programming at Linux. Siya rin ay isang taong mahilig sa crypto at palaging pinapanatili ang mga tab sa industriya ng crypto.

kung paano gamitin ang ssd at hdd
Higit pa Mula kay Jerome Davidson

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe