用C++编写程序,所完成的功能为:(1)建立数组,元素为12, 21, 5, 25, 31, 11, 30, 26, 53, 87, 20, 3, 65, 48, 67, 91。(2)使用快速排序法对数组进行排序。(3)使用二分查找法,搜索元素3的位置。
时间: 2023-10-09 18:05:40 浏览: 67
C++数组元素位置的查找程序
5星 · 资源好评率100%
下面是一个实现以上功能的C++程序:
```cpp
#include <iostream>
using namespace std;
// 快速排序
void quickSort(int arr[], int left, int right) {
if (left >= right) return;
int i = left, j = right, pivot = arr[left];
while (i < j) {
while (i < j && arr[j] >= pivot) j--;
if (i < j) arr[i++] = arr[j];
while (i < j && arr[i] < pivot) i++;
if (i < j) arr[j--] = arr[i];
}
arr[i] = pivot;
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
// 二分查找
int binarySearch(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 arr[] = {12, 21, 5, 25, 31, 11, 30, 26, 53, 87, 20, 3, 65, 48, 67, 91};
int n = sizeof(arr) / sizeof(arr[0]);
// 快速排序
quickSort(arr, 0, n - 1);
// 输出排序后的数组
cout << "排序后的数组为:";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
// 二分查找元素3
int index = binarySearch(arr, 0, n - 1, 3);
if (index == -1) {
cout << "元素3未找到" << endl;
} else {
cout << "元素3的位置为:" << index << endl;
}
return 0;
}
```
输出结果为:
```
排序后的数组为:3 5 11 12 20 21 25 26 30 31 48 53 65 67 87 91
元素3的位置为:0
```
阅读全文