|
Quick Sort - C++
|
- Aufgabe
Schnelles Sortieren durch Teilen und anschließendem rekursivem
Sortieren der Teile unabhängig voneinander.
Für das Sortieren von N Elementen werden ungefähr N log N Operationen benötigt.
- Struktogramm
- Quellcode
#include<iostream.h>
// Funktion: Quick-Sort, sortieren durch Teilen und Rekursion
// Autor : DG1XPZ
// Sprache : Borland C++ V5.0
void sort(int l,int r);
int zahlen[] = {9,5,8,6,3,7,4,0,1,2};
/* Zahlenarray*/
int i,j,a,laenge,h;
void main(void){
laenge=sizeof(zahlen)/sizeof(zahlen[0]);
cout<<"Unsortiert: ";
for(i=0;i<laenge;i++){
cout<<zahlen[i]<<",";
}
cout<<"\b \n";
sort(0,laenge);
cout<<"Sortiert : ";
for(i=0;i<laenge;i++){
cout<<zahlen[i]<<",";
}
cout<<"\b \n";
}
void sort(int l,int r){
if (r>l){
int v=zahlen[r];
int i=l-1;
int j=r;
int t;
do{
do{
i++;
}while(zahlen[i]<v);
do{
j--;
}while(zahlen[j]>v &&
j!=0);
t=zahlen[i];
zahlen[i]=zahlen[j];
zahlen[j]=t;
}while(j>i);
zahlen[j]=zahlen[i];
zahlen[i]=zahlen[r];
zahlen[r]=t;
sort(l,i-1);
sort(i+1,r);
}
}
- Download quick.zip
|
|
|