home *** CD-ROM | disk | FTP | other *** search
- // Shellsort Testprogramm in C++
- #include <iostream.h>
- #include <time.h>
-
- const int size=4000; // Größe des Feldes
- static long iterationen=32; //Durchläufe
- int feld[size];
-
- // Vertauschen der Inhalte von a und b
-
- inline void swap(int& a, int& b)
- { a ^= b; b ^= a; a ^= b; }
-
- // Shellsort - v[0] .. v[n-1] werden
- // aufsteigend sortiert
- // Algorithmus nach:
- // Kernighan/Ritchie,
- // The C Programming Language, 2nd ed.
- void shellsort(int* v, int n)
- { int gap, i,j;
- for(gap=n/2; gap>0; gap /= 2)
- for(i = gap; i < n; i++)
- for(
- j = i-gap;
- j>=0 && v[j]>v[j+gap];
- j -= gap
- )
- swap(v[j],v[j+gap]);
- }
-
- void main(void)
- {
- time_t startzeit = clock();
- while(iterationen--)
- { // Feld initialisieren
- for(int i=0; i<size; i++)
- feld[i] = size-i;
- // Sortieren
- shellsort(feld,size);
- }
- cout << ((clock()-startzeit)/CLK_TCK)
- << "Sekunden\n";
- }
-