C语言随机生成100个数并进行选择排序,进行二分查找
时间: 2023-07-19 12:34:11 浏览: 58
好的,以下是C语言随机生成100个数并进行选择排序,再进行二分查找的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 100
int binarySearch(int arr[], int low, int high, int target);
int main() {
int arr[SIZE];
int i, j, min, temp, target;
// 设置随机数种子
srand((unsigned)time(NULL));
// 随机生成100个数
for (i = 0; i < SIZE; i++) {
arr[i] = rand() % 1000;
}
// 选择排序
for (i = 0; i < SIZE - 1; i++) {
min = i;
for (j = i + 1; j < SIZE; j++) {
if (arr[j] < arr[min]) {
min = j;
}
}
if (min != i) {
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
// 输出排序后的结果
printf("排序后的结果:\n");
for (i = 0; i < SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 二分查找
printf("请输入要查找的数字:");
scanf("%d", &target);
int index = binarySearch(arr, 0, SIZE - 1, target);
if (index == -1) {
printf("未找到该数字!\n");
} else {
printf("该数字在数组中的下标为:%d\n", index);
}
return 0;
}
int binarySearch(int arr[], int low, int high, int target) {
if (low > high) {
return -1;
}
int mid = (low + high) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] > target) {
return binarySearch(arr, low, mid - 1, target);
} else {
return binarySearch(arr, mid + 1, high, target);
}
}
```
以上代码中,先使用选择排序算法对100个随机数从小到大进行排序,并输出排序后的结果。接着,使用二分查找算法在排序后的数组中查找用户输入的数字,并输出查找结果。其中,`binarySearch()`函数是一个递归实现的二分查找函数,用于在已排序的数组中查找指定的数字。