A kiválasztási rendezés használata

A kiválasztási rendezés használata

A kiválasztási rendezés olyan rendezési technika, amely kiválaszt egy listaelemet, majd felcseréli annak helyét egy másikkal. Kiválasztja a legnagyobb elemet, majd felcseréli azt a lista legmagasabb indexében található elemre.





Az algoritmus ezt többször megismétli, amíg a lista rendezésre nem kerül. Ha nem biztos benne, hogyan működik a kiválasztás, akkor jó helyen jár. Az alábbiakban részletesebben elmagyarázzuk, példával együtt.





Kiválasztás Rendezés: Közelebbről

Tegyük fel, hogy megvan a lista: [39, 82, 2, 51, 30, 42, 7]. A lista rendezéséhez a kiválasztási rendezéssel először meg kell találnia a legmagasabb számot.





A megadott listával ez a szám 82.

Az első menet után az új lista sorrendje a következő lesz: [39, 7, 2, 51, 30, 42, 82]. Minden alkalommal, amikor az algoritmus végigmegy a teljes listán, ezt „pass” -nak nevezik.



Vegye figyelembe, hogy a lista rendezett allistát és rendezetlen allistát tart fenn a rendezési folyamat során.

hogyan lehet kikapcsolni a csalást valószínűleg az iPhone -on

Összefüggő: Mi az a Big-O jelölés?





Az eredeti lista nulla elemek rendezett listájával és az összes elem rendezése listával kezdődik. Aztán az első áthaladás után van egy rendezett listája, amely csak a 82 -es számot tartalmazza.

A második lépésnél a rendezetlen allista legmagasabb száma 51 lesz. Ezt a számot 42 -el cseréljük, hogy megadjuk az alábbi lista sorrendjét:





hogyan kell beállítani az alapértelmezett Google -fiókot

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

A folyamatot addig ismételjük, amíg a teljes lista rendezésre nem kerül. Az alábbi ábra a teljes folyamatot foglalja össze:

A vastag, feketén szedett számok a lista legmagasabb értékét mutatják. A zöld színűek a rendezett allistát mutatják.

Algoritmus elemzés

Az algoritmus összetettségének (Big-O jelöléssel) megértéséhez kövesse az alábbi lépéseket:

Az első menetben (n-1) összehasonlításokat végeznek. A második passzban (n-2). A harmadik menetnél (n-3) és így tovább az (n-1) passzig, amely csak egy összehasonlítást tesz lehetővé.

Az alábbi összehasonlításokat összegezve:

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

Ezért a kiválasztási sorrend O (n2).

Kód implementáció

A kód azokat a funkciókat mutatja, amelyekkel Python és Java segítségével választási rendezést végezhet.

Piton:

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

Jáva:

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

Lépés a kiválasztási sorrendből az egyesítési rendezésbe

Amint azt a fenti algoritmuselemzés kimutatta, a kiválasztási rendezési algoritmus O (n2). Exponenciális bonyolultsággal rendelkezik, ezért nem hatékony nagyon nagy adathalmazok esetén.

Kindle könyvek letöltése pdf -be

Sokkal jobb algoritmus lenne az egyesítés, az O (nlogn) összetettségével. És most már tudja, hogy a kiválasztási rendezés hogyan működik, a rendezési algoritmusok tanulmánylistájának következő helyén az egyesítésnek kell lennie.

Részvény Részvény Csipog Email A 8 legjobb webhely, ahonnan ingyenesen letölthetők hangoskönyvek

A hangoskönyvek nagyszerű szórakoztató források, és sokkal könnyebben emészthetők. Íme a nyolc legjobb webhely, ahonnan ingyenesen letöltheti őket.

Olvassa tovább
Kapcsolódó témák
  • Programozás
  • Programozás
  • Algoritmusok
A szerzőről Jerome Davidson(22 cikk megjelent)

Jerome a MakeUseOf munkatársa. A programozásról és a Linuxról szóló cikkekkel foglalkozik. Szintén kriptorajongó, és mindig figyelemmel kíséri a kriptoipart.

További Jerome Davidson

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide