PMG2527 1/Sortierverfahren implementiert

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
== Sortieren durch Auswählen (Minimumsuche) ==


        <b>Prinzip: Aus einer Menge wird das kleinste Element ausgewählt und mit dem ersten Element vertauscht.
        Diese Vorgänge werden wiederholt ,wobei die Anzahl der Elemente bei jeder Wiederholung von 
        vorn um eins verringert wird.
        Zuletzt werden nur noch zwei Elemente überprüft und gegebenenfalls vertauscht.</b>

[[Bild:Select.PNG]]


<code id="696de46844eaa">
function select(){
var zahl = [50,61,7,8,9,1,2,3]; // Feld mit 8 vorgegebenen Werten
for (var i = 0; i <=7; i++){
  var mini=i;                   // Setze Merker
  for (var j = i + 1; j < 8; j++){
   if (zahl[j] < zahl[mini]) {  // Vergleich Zahl an Stelle j mit Merker
    mini=j;}
   }
    var h = zahl[i];            // vertauschen
    zahl[i] = zahl[mini];
    zahl[mini] = h;
//console.log(zahl[i]);           // Ausgabe
}
console.log(zahl)
}
</code>

<run id="696de46845041">
select()
</run>

== Sortieren durch Einfügen ==


        <b>Prinzip: Man wählt ein Element (nacheinander vom zweiten bis zum letzten) und fügt es jeweils an die richtige 
        Stelle der davorstehenden geordneten Teilmenge ein. </b>

[[Bild:Insert.PNG]]
ACHTUNG: i=2 auf i=1 ändern!



Implementieren Sie das ''Sortieren durch Einfügen'' analog zum Sortieren durch Auswählen!

<code id="696de46844f12">
</code>

<run id="696de468450a7">
</run>



== Sortieren durch Austauschen (Bubblesort) ==


        <b>Prinzip: Vom letzten Element einer Menge an werden jeweils zwei benachbarte Elemente verglichen und ausgetauscht, wenn
        sie falsch sortiert sein sollten. Dabei wandert das kleinste Element an die erste Stelle.
        Das Vergleichen und Austauschen wird mit Ausnahme dieses bereits richtig postierten Elements wiederholt.
        Das Sortieren kann aufsteigend (links nach rechts) oder absteigend (umgekehrt) erfolgen.</b>

[[Bild:Bubblesort.PNG]]



Implementieren Sie ''Bubblesort'' analog zum Sortieren durch Auswählen!


<code id="696de46844f80">
</code>

<run id="696de46845117">
</run>


=== Zusatzaufgabe ===

 Ersetzen Sie jeweils die vorgegebenen Feldinhalte in den Quelltexten durch zufällig erzeugte Zahlen.
 Lassen Sie sich diese vor dem Sortieren auch ausgeben.



== Quicksort ==


<code id="696de46844fd8">

</code>


<run id="696de46845190">

</run>




== weitere Sortierverfahren ==


Mergesort [[http://programmingwiki.de/Grundlagen_der_funktionsorientierten_Programmierung_mit_SCHEME/MergeSort]]


Gnomesort [[http://programmingwiki.de/Grundlagen_der_funktionsorientierten_Programmierung_mit_SCHEME/GnomeSort]]


<br>

== Literatur ==

* Fahldieck, Karl-Heinz: Algorithmen, Frankfurt am Main: Verlag Moritz Diesterweg, 1993
* Sedgewick, Robert: Algorithmen, Bonn:Addison-Wesley Publishing Company, 1992
* Hermann, Dietmar: Algorithmen Arbeitsbuch, Bonn; München; Paris, Addison-Wesley Publishing Company, 1992
* Junger, Hans u.a.: Informatik, Frankfurt am Main; Aarau, Verlag Moritz Diesterweg; Verlag Sauerländer AG, 1988