#include #include void swap(int *arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } void bubbleSort(int arr[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) swap(arr, j, j + 1); } } } void printArrInt(int printArr[], int arraySize) { for (int f = 0; f < arraySize; f++) { printf("%d ", printArr[f]); } printf("\n"); } int findInArrInt(int findArr[], int suche, int findInArrSize) { int gefunden = 0; int oben = findInArrSize - 1; //max vom arr int unten = 0; //min vom arr, anfangs immer 0 int mitte = 0; while (gefunden != 1 && oben>=unten) { mitte = (oben + unten) / 2; if (suche == findArr[mitte]) { gefunden = 1; } else { if (suche < findArr[mitte]) { oben = mitte - 1; } else { unten = mitte + 1; } } } if (gefunden==1) { return 1; } else { return 0; } } int main() { int array[200]; int arrsize = sizeof(array) / sizeof(array[1]); int suche = (rand() % 1000) + 1; for (int f = 0; f < arrsize; f++) { array[f] = (rand() % 1000) + 1; } printf("Unsortierter Array: \n"); printArrInt(array, arrsize); printf("\n"); printf("sortierter Array:\n"); bubbleSort(array, arrsize); printArrInt(array, arrsize); printf("\n"); printf("suche Zahl %d:\n", suche); if (findInArrInt(array, suche, arrsize) == 1) { printf("Zahl %d wurde gefunden!\n", suche); } else { printf("Zahl %d wurde nicht gefunden :(\n", suche); } return 0; }