Kā izmantot atlases kārtošanu

Kā izmantot atlases kārtošanu

Atlases kārtošana ir šķirošanas tehnika, kas atlasa saraksta vienumu un pēc tam apmaina to ar citu. Tas izvēlas lielāko vienumu un pēc tam apmaina to ar vienumu saraksta augstākajā rādītājā.





Algoritms to dara atkārtoti, līdz saraksts ir sakārtots. Ja neesat pārliecināts, kā darbojas atlases kārtošana, esat nonācis īstajā vietā. Tālāk mēs to izskaidrosim sīkāk, kā arī parādīsim piemēru.





Atlases kārtošana: tuvāks skatījums

Pieņemsim, ka jums ir saraksts: [39, 82, 2, 51, 30, 42, 7]. Lai kārtotu sarakstu, izmantojot atlases kārtošanu, vispirms jāatrod tajā lielākais skaitlis.





Izmantojot šo sarakstu, šis skaitlis ir 82. Apmainiet 82 ar skaitli augstākajā indeksā (tas ir, 7).

Pēc pirmās caurlaides jaunā saraksta secība būs šāda: [39, 7, 2, 51, 30, 42, 82]. Katru reizi, kad algoritms iziet visu sarakstu, to sauc par “caurlaidi”.



Ņemiet vērā, ka sarakstā kārtošanas laikā tiek saglabāts sakārtots apakšsaraksts un nešķirots apakšsaraksts.

par kādu grāmatu es domāju

Saistīts: Kas ir Big-O apzīmējums?





Sākotnējais saraksts sākas ar sakārtotu nulles vienību sarakstu un visu vienumu nešķirotu sarakstu. Pēc pirmās caurlaides tam ir sakārtots saraksts ar tikai 82.

Otrajā piegājienā lielākais skaits nešķirotajā apakšsarakstā būs 51. Šis numurs tiks apmainīts ar 42, lai iegūtu jaunu saraksta secību:





ko nozīmē lte manā tālrunī

[39, 7, 2, 42, 30, 51, 82].

Process tiek atkārtots, līdz viss saraksts ir sakārtots. Tālāk redzamajā attēlā ir apkopots viss process:

Sarkani melnā krāsā norādītie skaitļi parāda tobrīd augstāko saraksta vērtību. Tie, kas ir zaļā krāsā, parāda sakārtoto apakšsarakstu.

Algoritmu analīze

Lai iegūtu šī algoritma sarežģītību (izmantojot Big-O apzīmējumu), veiciet tālāk norādītās darbības.

Pirmajā piegājienā tiek veikti (n-1) salīdzinājumi. Otrajā piespēlē (n-2). Trešajā piegājienā (n-3) un tā tālāk, līdz (n-1) piespēlei, kas ir tikai viens salīdzinājums.

Apkopojot salīdzinājumus, kā norādīts zemāk, tiek parādīts:

(n-1)+ (n-1)+ (n-1)+ ...+ 1 = ((n-1) n)/2.

Tāpēc atlases kārtošana ir O (n2).

Koda ieviešana

Kods parāda funkcijas, kuras varat izmantot atlases kārtošanai, izmantojot Python un Java.

Python:

def selectionSort(mylist):
for x in range(len(mylist) - 1, 0, -1):
max_idx = 0
for posn in range(1, x + 1):
if mylist[posn] > mylist[max_idx]:
max_idx = posn
temp = mylist[x]
mylist[x] = mylist[max_idx]
mylist[max_idx] = temp

Java:

void selectionSort(int my_array[]){
for (int x = 0; x {
int index = x;
for (int y = x + 1; y if (my_array[y] index = y; // find lowest index
}
}
int temp = my_array[index]; // temp is a temporary storage
my_array[index] = my_array[x];
my_array[x] = temp;
}}

Pāreja no atlases kārtošanas uz apvienošanas kārtošanu

Kā parādīja iepriekš minētā algoritma analīze, atlases kārtošanas algoritms ir O (n2). Tam ir eksponenciāla sarežģītība, un tāpēc tas ir neefektīvs ļoti lielām datu kopām.

mūzikas lejupielādētājs google play mūzikai

Daudz labāks izmantojamais algoritms būtu apvienošanas kārtošana ar O (nlogn) sarežģītību. Un tagad jūs zināt, kā darbojas atlases kārtošana, nākamajam šķirošanas algoritmu pētījumu sarakstam vajadzētu būt sapludināšanas kārtošanai.

Kopīgot Kopīgot Čivināt E -pasts 8 labākās vietnes, kur bez maksas lejupielādēt audiogrāmatas

Audiogrāmatas ir lielisks izklaides avots un daudz vieglāk sagremojams. Šeit ir astoņas labākās vietnes, kur tās var lejupielādēt bez maksas.

Lasīt Tālāk
Saistītās tēmas
  • Programmēšana
  • Programmēšana
  • Algoritmi
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.

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