Selection sort
Uiterlijk
Selection sort is een sorteeralgoritme. Selection sort is een eenvoudige maar ook inefficiënte sorteermethode. Zij heeft een complexiteitsgraad van O(n2).
Werking
[bewerken | brontekst bewerken]De methode werkt als volgt:
- Zoek de kleinste waarde in de lijst.
- Verwissel het met de eerste waarde in de lijst.
- Herhaal de bovenstaande stappen met de rest van de lijst.
In Java
[bewerken | brontekst bewerken]Een voorbeeld in Java van Selection Sort.
for (int i = 0; i < array.length - 1; i++) { // invoer = array met integers
int minIndex = i; // zoek kleinste in de rest van de array
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[minIndex]) {
minIndex = j;
}
}
int temp = array[i]; // verwissel waarden
array[i] = array[minIndex];
array[minIndex] = temp;
}
In C++
[bewerken | brontekst bewerken]for (int i = v.size() - 1; i >= 0; i--)
{
T max = v[0];
int maxpos = 0;
int j;
for (j = 1; j < i; j++)
{
if (v[j] > max){
max = v[j];
maxpos = j;
}
}
swap(v[maxpos], v[i]);
}
In C#
[bewerken | brontekst bewerken]Een voorbeeld in Csharp van Selection Sort.
public void SelectionSort(int[] T)
{
for (int I = 0 ; I < T.Length - 1 ; I++){ //Loop door de hele array
int MinIndex = I; //Hou de kleinste waarde bij, als we beginnen is die gelijk aan het element dat we proberen te sorteren
for (int J = I + 1 ; J < T.Length ; J++){ //Loop door het ongesorteerde deel
if (T[J] < T[MinIndex]){
MinIndex = J;
}
}
//Zet het kleinste element uit de rij op positie I
Int temp = T[I];
T[I] = T[MinIndex];
T[MinIndex] = temp;
}
}/*SelectionSort*/
In Python
[bewerken | brontekst bewerken]def SelectionSort(lst):
for i in range(len(lst)):
kleinste=lst[i]
te_wisselen=i
for n in range(i,len(lst)):
if lst[n]<kleinste:
kleinste=lst[n]
te_wisselen=n
lst[te_wisselen]=lst[i]
lst[i]=kleinste
return lst