87 lines
1.6 KiB
C
87 lines
1.6 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
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;
|
|
}
|
|
|
|
|