Auswahlsortierung (Felder)
Lesen Sie eine Reihe von ganzen Zahlen in ein Array ein.
- Setzen Sie eine Indexvariable auf den ersten Index im Array.
- Sortieren Sie wie folgt: Für jeden Index suchen Sie ab dort das Minimum im verbleibenden Teil (? Index). Vertauschen Sie den gefunden Wert mit dem aktuellen Wert.
- Erhöhen Sie den Index um 1.
- Wenn Sie durch obiges Verfahren den zweitletzten Index erreicht haben, ist Ihr Array sortiert. Ansonsten zurück zu b).
- Ausgabe des Resultates auf der Konsole.
0 Kommentare
Bitte melde dich an um einen Kommentar abzugeben
2 Lösung(en)
def min(b):
min = b[0]
for zahl in b[1:]:
if zahl < min:
min = zahl
return min
def auswahlsortierung(a):
for i in range(len(a)):
m = min(a[i:])
ind = a[i:].index(m)+i
a[ind]=a[i]
a[i]=m
return a
print auswahlsortierung([2, 17, 10, 9, 16, 3, 9, 16, 5, 1, 17, 14])
// helferlein: minimum eines arrays ermitteln
Array.prototype.min = function() { return Math.min.apply(null, this); }
function selectionSort(arr) {
let index = 0;
// ringtausch
function swap(a, b) {
let tmp = arr[a];
arr[a] = arr[b];
arr[b] = tmp;
}
// durchlaufen und tauschen
while (index < arr.length-1) {
swap(index, arr.indexOf(arr.slice(index).min()));
index++;
}
}
// array anlegen: worst case
let theArray = [];
for (let i = 20; i >= 1; i--) theArray.push(i);
// sortieren und ausgeben
selectionSort(theArray);
console.log(theArray); // lissalanda@gmx.at
Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)
Aktionen
Neue Lösung hinzufügen
Bewertung
Durchschnittliche Bewertung:
Meta
Zeit: | 1 |
Schwierigkeit: | k.A. |
Webcode: | y45k-6qgz |
Autor: | Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch) |