c语言n 个从小到大排序的整数( n<1000000 )从 1~n 进行编号,并一个待查找的整数 m ,请使用二分法进行查找。
时间: 2024-02-03 11:13:20 浏览: 24
好的,这里是使用二分法进行查找的 C 语言代码:
```c
#include <stdio.h>
// 二分查找函数
int binary_search(int arr[], int left, int right, int target) {
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
int main() {
int n, m;
printf("请输入整数个数 n 和待查找的整数 m:\n");
scanf("%d %d", &n, &m);
// 读入 n 个整数
int arr[n];
printf("请输入 %d 个整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 对整数进行从小到大排序
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
// 使用二分法查找
int index = binary_search(arr, 0, n - 1, m);
if (index == -1) {
printf("未找到该整数!\n");
} else {
printf("该整数在数组中的下标为:%d\n", index);
}
return 0;
}
```
这个程序中,我们首先读入整数个数 n 和待查找的整数 m,然后读入 n 个整数并进行从小到大排序。最后,使用二分法对排序后的整数数组进行查找,如果找到了待查找的整数 m,那么返回该整数在数组中的下标,否则输出未找到该整数的提示信息。