c语言编程,对于给定无序数列,先冒泡排序、再二分查找。要求排序和查找的算法均用函数实现;
时间: 2024-12-29 14:32:21 浏览: 3
在C语言编程中,你可以将冒泡排序和二分查找作为两个独立的函数分别实现,然后在一个主程序中结合这两个函数完成整个过程。以下是简单的步骤:
1. **冒泡排序函数** (`bubble_sort()`):
```c
void bubble_sort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换元素
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
2. **二分查找函数** (`binary_search()`):
```c
int binary_search(int arr[], int l, int r, int x) {
if (r >= l) {
int mid = l + (r - l) / 2;
if (arr[mid] == x)
return mid;
if (arr[mid] > x)
return binary_search(arr, l, mid - 1, x);
return binary_search(arr, mid + 1, r, x);
}
return -1;
}
```
在主程序中,首先对数组进行冒泡排序,然后再使用二分查找功能:
```c
int main() {
int arr[] = {5, 7, 3, 9, 1};
int n = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, n); // 排序
int target = 7; // 需要查找的目标值
int result = binary_search(arr, 0, n - 1, target);
if (result != -1)
printf("Element found at index %d\n", result);
else
printf("Element not found in the sorted array.\n");
return 0;
}
```
阅读全文