Inset sort: piv txwv li cas lub algorithm ua haujlwm

Cov txheej txheem:

Inset sort: piv txwv li cas lub algorithm ua haujlwm
Inset sort: piv txwv li cas lub algorithm ua haujlwm
Anonim

Muaj ntau lub tswv yim yooj yim rau kev daws qhov teeb meem ntawm kev txheeb xyuas qhov array. Ib tug ntawm cov nto moo tshaj plaws ntawm lawv yog insertion. Vim nws clarity thiab simplicity, tab sis tsis tshua muaj efficiency, txoj kev no yog siv mas nyob rau hauv kev qhia programming. Nws tso cai rau koj kom nkag siab txog cov txheej txheem txheeb xyuas yooj yim.

Kev piav qhia ntawm algorithm

Lub ntsiab lus ntawm qhov kev tso npe nkag algorithm yog qhov kev txiav txim kom raug yog tsim nyob rau hauv thawj array. Txhua lub ntsiab lus tau muab piv rau ib qho los ntawm ib qho nrog cov ntawv txheeb xyuas thiab muab tso rau hauv qhov chaw zoo. Yog li, tom qab iterating los ntawm tag nrho cov ntsiab lus, lawv kab hauv qhov kev txiav txim kom raug.

Qhov kev txiav txim ntawm kev xaiv cov ntsiab lus tuaj yeem yog ib qho, lawv tuaj yeem xaiv arbitrarily lossis raws li qee qhov algorithm. Feem ntau, kev suav sau ua ntu zus yog siv los ntawm qhov pib ntawm cov array, qhov twg ib ntu raug tsim.

Insertion sort algorithm
Insertion sort algorithm

Qhov pib ntawm kev txheeb xyuas yuav zoo li no:

  1. Tau thawj lub ntsiab ntawm cov array.
  2. Vim tsis muaj ib yam dabtsi los piv nrog, coj lub ntsiab nws tus kheej raws li kev txiav tximsequence.
  3. mus rau yam khoom thib ob.
  4. Piv nws nrog thawj tus raws li txoj cai xaiv.
  5. Yog tias tsim nyog, sib pauv cov ntsiab lus hauv qhov chaw.
  6. Tau thawj ob lub ntsiab lus raws li kev txiav txim ib ntus.
  7. mus rau yam thib peb.
  8. Muab piv nrog qhov thib ob, sib pauv yog tias tsim nyog.
  9. Yog hloov tau, muab piv nrog thawj tus.
  10. Tau peb yam raws li kev txiav txim ib ntus.

Thiab mus txog qhov kawg ntawm qhov qub array.

Nyob hauv lub neej tiag tiag

Rau qhov tseeb, nws tsim nyog muab piv txwv ntawm qhov kev txheeb xyuas no siv li cas hauv lub neej txhua hnub.

Siv, piv txwv li, lub hnab nyiaj. Pua pua, tsib-pua, thiab txhiab-duas cov nqi pw hauv kev tsis sib haum xeeb hauv lub hnab nyiaj. Qhov no yog kev ntxhov siab, nyob rau hauv xws li ib tug hodgepodge nws yog ib qho nyuaj rau tam sim ntawd nrhiav tau ib daim ntawv zoo. Cov array ntawm banknotes yuav tsum tau txheeb.

thawj zaug yog daim ntawv nyiaj ntawm 1000 rubles, thiab tam sim ntawd tom qab nws - 100. Peb muab ib puas thiab tso rau pem hauv ntej. Qhov thib peb hauv kab yog 500 rubles, qhov chaw tsim nyog rau nws yog nruab nrab ntawm ib puas thiab ib txhiab.

Ib yam li peb txheeb cov ntawv tau txais thaum ua si "Fool" kom yooj yim rau kev taw qhia lawv.

Insertion sort nyob rau hauv lub neej tiag tiag
Insertion sort nyob rau hauv lub neej tiag tiag

Tus neeg ua haujlwm thiab tus pab ua haujlwm

Txoj kev nkag nkag yuav siv raws li kev nkag mus rau thawj array kom raug txheeb xyuas, kev sib piv muaj nuj nqi, thiab, yog tias tsim nyog, muaj nuj nqi uas txiav txim siab txoj cai rau suav cov ntsiab lus. Feem ntau siv los hloovcov lus hais tsis tu ncua.

thawj lub ntsiab yog nws tus kheej ib qho kev txiav txim, yog li qhov kev sib piv pib ntawm qhov thib ob.

Cov algorithm feem ntau siv tus pab cuam los pauv ob qhov txiaj ntsig (swap). Nws siv qhov hloov pauv ib ntus ntxiv, uas siv lub cim xeeb thiab ua rau tus lej qeeb me ntsis.

Ib qho lwm txoj hauv kev yog kom loj hloov ib pawg ntawm cov ntsiab lus thiab tom qab ntawd ntxig qhov tam sim no rau hauv qhov chaw dawb. Hauv qhov no, kev hloov pauv mus rau lub caij tom ntej tshwm sim thaum qhov kev sib piv tau muab qhov txiaj ntsig zoo, uas qhia tau tias qhov kev txiav txim raug.

Algorithm rau sorting ib array los ntawm inserts
Algorithm rau sorting ib array los ntawm inserts

Kev ua piv txwv

Qhov kev siv tshwj xeeb feem ntau nyob ntawm cov lus programming siv, nws cov syntax thiab cov qauv.

Classic C siv siv qhov hloov pauv ib ntus los pauv qhov txiaj ntsig:


int i, j, temp; for (i=1; i =0; j--) { if (array[j] < temp) break; array[j+1]=array[j]; array[j]=temp; } }

PHP Kev Ua Haujlwm:


function insertion_sort(&$a) { rau ($i=1; $i=0 &&$a[$j] > $x; $j--) { $a[$ j + 1]=$a[$j]; } $a[$j + 1]=$x; } }

Ntawm no, ua ntej, tag nrho cov ntsiab lus uas tsis sib haum nrog cov xwm txheej raug hloov mus rau sab xis, thiab tom qab ntawd cov khoom tam sim no tau muab tso rau hauv qhov chaw dawb.

Java code siv thaum lub voj:


public static void insertionSort(int arr) { for(int i=1; i =0 &&arr[prevKey] > currElem){ arr[prevKey+1]=arr[prevKey]; arr[prevKey]=currElem; prevKey--; } } }

Lub ntsiab lus dav dav ntawm txoj cai tseem tsis hloov pauv: txhua lub ntsiab ntawm cov array yog sib txuas nrog cov yav dhau los thiab sib pauv nrog lawv yog tias tsim nyog.

kwv yees lub sijhawm ua haujlwm

Pom tseeb, hauv qhov zoo tshaj plaws, cov tswv yim ntawm cov algorithm yuav yog ib qho array twb tau txiav txim rau txoj hauv kev. Hauv qhov xwm txheej no, algorithm tsuas yog yuav tsum tau kuaj xyuas txhua lub caij kom paub tseeb tias nws nyob hauv qhov chaw zoo yam tsis muaj kev sib pauv. Yog li, lub sijhawm khiav yuav ncaj qha nyob ntawm qhov ntev ntawm tus thawj array O(n).

Cov ntaub ntawv tsis zoo tshaj plaws yog ib qho array txheeb nyob rau hauv qhov kev txiav txim rov qab. Qhov no yuav xav tau ntau qhov kev hloov pauv, lub sijhawm ua haujlwm yuav nyob ntawm tus lej ntawm cov ntsiab lus squared.

Tus naj npawb tseeb ntawm kev hloov pauv rau ib qho kev txiav txim tsis tiav tuaj yeem suav nrog siv tus qauv:


n(n-1)/2

qhov twg n yog qhov ntev ntawm tus thawj array. Yog li, nws yuav siv 4950 permutations los npaj 100 yam hauv qhov kev txiav txim kom raug.

Txoj kev ntxig yog qhov ua tau zoo heev rau kev txheeb xyuas cov khoom me me lossis ib nrab arrays. Txawm li cas los xij, nws tsis pom zoo kom siv nws txhua qhov chaw vim qhov nyuaj ntawm kev suav.

Cov algorithm yog siv los ua ib qho kev pabcuam hauv ntau lwm txoj hauv kev ntau dua.

Kev khiav hauj lwm ntawm qhov ntxig sorting algorithm
Kev khiav hauj lwm ntawm qhov ntxig sorting algorithm

Xim vaj huam sib luag

Cov txheej txheem ntxig ntxig yog nyob ntawm qhov hu ua ruaj khov. Nws txhais tau tias,tias nws tsis pauv cov ntsiab lus zoo ib yam, tab sis khaws cia lawv cov kev txiav txim qub. Qhov ntsuas kev ruaj ntseg yog nyob rau ntau qhov tseem ceeb rau kev txiav txim kom raug.

Image
Image

Cov lus saum toj no yog qhov piv txwv zoo ntawm kev tso tawm hauv kev seev cev.

Pom zoo: