//Niz.cpp //The time in seconds is the value returned by the clock function, divided by CLOCKS_PER_SEC. #include "niz.h" #include #include using namespace std; void Niz::generishi(){ for(int i=0;i= 0; i--) { for (j = 1; j <= i; j++) { if (niz[j-1] > niz[j]) { temp = niz[j-1]; niz[j-1] = niz[j]; niz[j] = temp; } } } finish=clock(); return time = (double(finish)-double(start))/CLOCKS_PER_SEC; } /////INSERTSORT METODA /////////////////////// double Niz::InsertSort(){ clock_t start,finish; double time; start=clock(); int index,j; for (int i=1; i < duz; i++) { index = niz[i]; j = i; while ((j > 0) && (niz[j-1] > index)) { niz[j] = niz[j-1]; j = j - 1; } niz[j] = index; } finish=clock(); return time = (double(finish)-double(start))/CLOCKS_PER_SEC; } //Selection Sort ///////////////////////// double Niz::SelectSort(){ clock_t start,finish; double time; start=clock(); int min; for (int i = 0; i < duz-1; i++) { min = i; for (int j = i+1; j < duz; j++) { if (niz[j] < niz[min]) min = j; } int temp = niz[i]; niz[i] = niz[min]; niz[min] = temp; } finish=clock(); return time = (double(finish)-double(start))/CLOCKS_PER_SEC; } //Pomocna metoda //////////////// void q_sort(int* numbers, int left, int right) { int pivot, l_hold, r_hold; l_hold = left; r_hold = right; pivot = numbers[left]; while (left < right) { while ((numbers[right] >= pivot) && (left < right)) right--; if (left != right) { numbers[left] = numbers[right]; left++; } while ((numbers[left] <= pivot) && (left < right)) left++; if (left != right) { numbers[right] = numbers[left]; right--; } } numbers[left] = pivot; pivot = left; left = l_hold; right = r_hold; if (left < pivot) q_sort(numbers, left, pivot-1); if (right > pivot) q_sort(numbers, pivot+1, right); } //QickSort metoda /////////////////////// double Niz::quickSort() { clock_t start,finish; double time; start=clock(); q_sort(niz, 0, duz - 1); finish=clock(); return time = (double(finish)-double(start))/CLOCKS_PER_SEC; }