Ievads ievietošanas kārtošanas algoritmā

Ievads ievietošanas kārtošanas algoritmā

Ievietošanas kārtošana ir metode, kas darbojas, izmantojot sakārtotu apakšsarakstu un nepārtraukti pievienojot tam vērtību no nešķirotā saraksta, līdz viss saraksts ir sakārtots.





Algoritms sākas ar pirmo saraksta vienumu kā sakārtotu apakšsarakstu. Pēc tam tas salīdzina nākamo skaitli ar pirmo. Ja tas ir lielāks, tas tiek ievietots pirmajā rādītājā. Pretējā gadījumā tas tiek atstāts rādītājā.





Pēc tam trešo vērtību salīdzina ar pārējām divām un pēc tam ievieto pareizā rādītājā. Šis process turpinās, līdz tiek sakārtots viss saraksts.





Ievietošanas kārtošana tuvāk

Iepriekš aprakstītais jums, iespējams, nav bijis loģisks. Piemēram vajadzētu palīdzēt jums saprast daudz labāk.

Pieņemsim, ka jums ir saraksts: [39, 6, 2, 51, 30, 42, 7].



Algoritms identificē 39 kā sakārtotā apakšsaraksta pirmo vērtību. Pēc tam novērtēšana pāriet uz otro pozīciju.

Saistītie: Dinamiskā programmēšana: piemēri, izplatītas problēmas un risinājumi





Pēc tam skaitli 6 salīdzina ar 39. Tā kā 6 ir mazāks par 39, 6 tiek ievietots pirmajā pozīcijā un 39 otrajā. Jaunā saraksta secība ir pēc pirmās caurlaides:

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





Novērtējums tagad pāriet uz trešo pozīciju. 2 salīdzina ar pēdējiem diviem cipariem un pēc tam ievieto pareizā pozīcijā. Jaunā saraksta secība ir pēc otrās pārejas:

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

Trešajā pārejā saraksta secība ir šāda:

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

Process tiek atkārtots, līdz tiek sakārtots viss saraksts.

Skatiet tālāk redzamo diagrammu, kurā apkopotas šīs darbības:

Algoritmu analīze

Ievietošanas kārtošanas laika sarežģītība ir O (n2), tieši kā burbuļu kārtošana . Salīdzinājumu skaits sliktākajā gadījumā ir visu veselu skaitļu summa no 1 līdz (n-1), dodot kvadrātisko summu.

Koda ieviešana

Tālāk redzamais Python un Java kods parāda, kā jūs varat ieviest ievietošanas kārtošanas metodi.

Python:

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;
}
}

Labāka kodēšana ar pseidokodu

Iepriekš minētie koda piemēri tika doti bez pseidokoda, uz kuru varat atsaukties, rakstot šo algoritmu citās valodās. Lielākajai daļai programmētāju (ieskaitot autoru) patīk skriet pie tastatūras pēc tam, kad viņiem ir “čuksti” par programmas darbību.

Šī pieeja diemžēl ir pakļauta kļūdām, jo ​​programmas loģika kļūst sarežģītāka. Kā jūs vēlētos paaugstināt savu programmēšanas spēli, iemācoties lietot pseidokodu?

Kopīgot Kopīgot Čivināt E -pasts Kas ir pseidokods un kā tas padara jūs par labāku izstrādātāju?

Cīnās apgūt programmēšanu? Iepazīstieties ar kodu, apgūstot pseidokodu. Bet kas ir pseidokods un vai tas tiešām var palīdzēt?

Lasīt Tālāk
Saistītās tēmas
  • Programmēšana
  • Java
  • Python
  • Kodēšanas apmācības
Par autoru Džeroms Deividsons(22 raksti publicēti)

Džeroms ir MakeUseOf personāla rakstnieks. Viņš aptver rakstus par programmēšanu un Linux. Viņš ir arī kriptogrāfijas entuziasts un vienmēr seko līdzi kriptogrāfijas nozarei.

mūzikas ierakstu studijas lietotne android
Vairāk no Džeroma Deividsona

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu