|
![Programmierung](../../image/bt_soft.gif)
Insertion Sort - C++
|
- Aufgabe
Sortieren durch direktes Einfügen.
Dieser Suchalgorithmus ist genauso einfach wie Selection-Sort,
aber flexibler.
Benötigt zwischen N²/4 und N²/2 Vergleiche und N²/8 und N²/4
Austauschoperationen.
Das betrachtete Element (h) wird eingefügt, indem die größeren Elemente (a[
x ]) um eine Position nach rechts kopiert werden und das Element (h) auf dem
frei gewordenen Platz (a[ j ]) eingefügt wird.
- Struktogramm
![Insertion-Sort](insert.gif)
- Quellcode
#include<iostream.h>
// Funktion: Insertion-Sort, sortieren durch direktes Einfügen
// Autor : DG1XPZ
// Sprache : Borland C++ V5.0
void sort(int z[]);
int zahlen[] = {9,5,8,6,3,7,4,0,1,2};
/* Zahlenarray*/
int i,j,h,laenge;
void main(void){
laenge=sizeof(zahlen)/sizeof(zahlen[0]);
cout<<"Unsortiert:
";
for(i=0;i<laenge;i++){
cout<<zahlen[i]<<",";
}
cout<<"\b \n";
sort(zahlen);
cout<<"Sortiert :
";
for(i=0;i<laenge;i++){
cout<<zahlen[i]<<",";
}
cout<<"\b \n";
}
void sort(int z[]){
for (i=0;i<laenge;i++){
h=z[i];
j=i;
while (j>0 &&
z[j-1] > h){
z[j]=z[j-1];
j--;
}
z[j]=h;
}
}
- Download insert.zip
|
|
|