|
发表于 2023-10-22 11:32:54
|
显示全部楼层
这是一个C++程序,它首先使用冒泡排序对一个随机输入的数组进行排序,然后使用二分查找法在排序后的数组中查找一个随机输入的数。如果找到了,它会输出该元素在数组中的位置;如果没有找到,它会输出一个提示。
- #include <iostream>
- using namespace std;
- 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], arr[j+1]);
- }
- }
- }
- }
- int binarySearch(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 binarySearch(arr, l, mid - 1, x);
- return binarySearch(arr, mid + 1, r, x);
- }
- return -1;
- }
- int main() {
- int n;
- cout << "请输入数组的大小: ";
- cin >> n;
- int arr[n];
- cout << "请输入数组元素: ";
- for(int i = 0; i < n; i++) {
- cin >> arr[ i];
- }
- bubbleSort(arr, n);
- cout << "排序后的数组是: ";
- for(int i = 0; i < n; i++) {
- cout << arr[ i] << " ";
- }
- cout << "\
- 请输入要查找的元素: ";
- int x;
- cin >> x;
- int result = binarySearch(arr, 0, n - 1, x);
- (result == -1) ? cout << "元素不在数组中"
- : cout << "元素在数组中的位置: " << result;
- return 0;
- }
复制代码
在这个程序中,我们首先定义了一个冒泡排序函数bubbleSort,它会对输入的数组进行排序。然后我们定义了一个二分查找函数binarySearch,它会在输入的数组中查找指定的元素。在main函数中,我们首先获取用户输入的数组大小和数组元素,然后对数组进行排序,并输出排序后的数组。然后我们获取用户想要查找的元素,并使用二分查找法在数组中查找这个元素。如果找到了,我们就输出这个元素在数组中的位置;如果没有找到,我们就输出一个提示。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案 |
|