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önyvekA 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
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 DavidsonIratkozzon 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