#include //#include #pragma hdrstop #include "sortieren_u.h" //--------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- // globale Konstanten und Variablen #define N 5000 // Anzahl der Elemente int zfeld[N]; //--------------------------------------------------------------------------- // lokale Funktionen (Sortieralgorithmen) //--------------------------------------------------------------------------- void bubbleSort(int x[], int n) { int i,k,h; for (k = 1; k <= N-1; k++) for (i = 0; i <= (N-1)-k; i++) if( x[i] > x[i+1] ) { h = x[i]; x[i] = x[i+1]; x[i+1] = h; } } //--------------------------------------------------------------------------- void selectionSort(int x[], int n){ int min,i,j,y; for (i=0; i < n; i++) { min = i; for (j= i+1; j < n; j++) if ( x[j] < x[min] ) min = j; // Werte austauschen (swap) y = x[min]; x[min] = x[i]; x[i] = y; } } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- // Operationen der Klasse TForm1 //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { randomize(); } //--------------------------------------------------------------------------- void __fastcall TForm1::btnLoeschenClick(TObject *Sender) { lboxSortiert->Items->Clear(); } //--------------------------------------------------------------------------- void __fastcall TForm1::btnNeueZahlenClick(TObject *Sender) { int i; lboxUnsortiert->Items->Clear( ); for (i = 0; i < N; i++) { zfeld[i] = random(50); lboxUnsortiert->Items->Add( IntToStr( zfeld[i]) ); } } //--------------------------------------------------------------------------- void __fastcall TForm1::btnBubbleSortClick(TObject *Sender) { int i; TDateTime t1, t2; Word Hour, Min, Sec, MSec; t1 = Time(); bubbleSort(zfeld, N); // die ersten N Elemente von zfeld[ ] sortieren t2 = Time(); DecodeTime(t2-t1, Hour, Min, Sec, MSec); edtBubbleSort->Text = IntToStr( MSec + 1000*(Sec + 60*Min) ); for (i = 0; i < N; i++) lboxSortiert->Items->Add( IntToStr(zfeld[i]) ); } //--------------------------------------------------------------------------- void __fastcall TForm1::btnSelectionSortClick(TObject *Sender) { int i; TDateTime t1, t2; Word Hour, Min, Sec, MSec; t1 = Time(); selectionSort(zfeld, N); // die ersten N Elemente von zfeld[ ] sortieren t2 = Time(); DecodeTime(t2-t1, Hour, Min, Sec, MSec); edtSelectionSort->Text = IntToStr( MSec + 1000*(Sec + 60*Min) ); for (i = 0; i < N; i++) lboxSortiert->Items->Add( IntToStr(zfeld[i]) ); } //--------------------------------------------------------------------------- void __fastcall TForm1::btnInsertionSortClick(TObject *Sender) { int i; // insertionSort(zfeld, N); // die ersten N Elemente von zfeld[ ] sortieren for (i = 0; i < N; i++) lboxSortiert->Items->Add( IntToStr(zfeld[i]) ); } //---------------------------------------------------------------------------