这是一个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
如果问题已经解决,请设置最佳答案 |