// Ue5Aufgabe2.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include int size = 6; int *randomArray(int size); void quickSort(int *array, int l , int r); int getPivot(int *array, int l, int r); void exchange(int *array, int l, int r); int binarySearch(int *array, int size, int value, int *compares); int main(int argc, char* argv[]) { int value = 3166; int compares = 0; int *reihung = randomArray(size); for (int i = 0; i< size; i++){ std::cout << "Unsortiert: " <= r){ return; } int pivot = getPivot(array, l, r-1); std::cout << "Pivot: " << pivot<<" "<= 1 && array[pivot] >= array[r]){ j--; } while (i < j){ exchange(array, i ,j); while (array[i] < array[r]){ i++; } while (array[j] >= array[r]){ j--; } } exchange(array, i ,r); quickSort(array,l, i-1); quickSort(array,i+1, r); } int getPivot(int *array, int l, int r){ int mitte = r/2; if ((array[l] <= array[r] && array[l] >= array[mitte]) || (array[l] >= array[r] && array[l] <= array[mitte])){ return l; } else if((array[r] <= array[l] && array[r] >= array[mitte]) || (array[r] >= array[l] && array[r] <= array[mitte])){ return r; } return mitte; } void exchange(int *array, int r, int l){ int temp = array[r]; array[r] = array[l]; array[l] = temp; return; } int binarySearch(int *array, int size, int value, int *compares){ int mitte = size/2; *compares ++; if (array [mitte] == value){ return 1; } if(size == 0){ return 0; } *compares ++; if (array[mitte] > value){ size = mitte; binarySearch(array, mitte, value, compares); } else{ binarySearch(&array[mitte], size - mitte, value, compares); } }