C++实现折半查找算法程序设计。 2、冒泡排序算法程序设计。 3、简单选择排序算法程序设计并且分别运行出结果!!
时间: 2024-03-16 11:43:55 浏览: 14
好的,我来为您解答这个问题。
1、折半查找算法程序设计:
折半查找算法,也称二分查找算法,是一种常用的查找算法,它要求被查找的数组必须有序。其基本思想是:首先在有序数组的中间位置确定一个比较值,然后将被查找值与比较值比较,如果被查找值等于比较值,则查找成功;如果被查找值小于比较值,则在数组的左半部分继续查找;如果被查找值大于比较值,则在数组的右半部分继续查找,直到查找成功或者查找失败为止。
下面是折半查找算法的 C++ 实现代码:
```cpp
#include <iostream>
using namespace std;
int binary_search(int arr[], int n, int target) {
int left = 0, right = n - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11, 13, 15};
int n = sizeof(arr) / sizeof(int);
int target = 9;
int index = binary_search(arr, n, target);
if (index != -1) {
cout << "找到了,索引为 " << index << endl;
} else {
cout << "没找到!" << endl;
}
return 0;
}
```
上述代码中,我们先定义了一个 `binary_search` 函数,该函数接收三个参数:数组 `arr`、数组长度 `n` 和目标值 `target`,返回目标值在数组中的索引,如果没有找到则返回 -1。在函数中,我们使用了两个指针 `left` 和 `right`,分别指向数组的左边界和右边界,然后在一个 while 循环中不断缩小查找范围,直到找到目标值或者查找失败。
在 `main` 函数中,我们定义了一个有序数组 `arr`,指定了目标值为 9,然后调用 `binary_search` 函数进行查找。最后根据返回值判断是否找到目标值。
2、冒泡排序算法程序设计:
冒泡排序算法是一种简单的排序算法,它的基本思想是:对于一个长度为 n 的数组,从第一个元素开始,依次比较相邻的两个元素,如果前一个元素比后一个元素大,则交换它们的位置,这样一轮下来,最大的元素就会被排到数组的最后面。然后我们再对剩下的 n-1 个元素进行同样的操作,直到整个数组都被排好序为止。
下面是冒泡排序算法的 C++ 实现代码:
```cpp
#include <iostream>
using namespace std;
void bubble_sort(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 main() {
int arr[] = {5, 2, 4, 6, 1, 3};
int n = sizeof(arr) / sizeof(int);
bubble_sort(arr, n);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
上述代码中,我们定义了一个 `bubble_sort` 函数,该函数接收两个参数:数组 `arr` 和数组长度 `n`。在函数中,我们使用两个嵌套的 for 循环,依次比较相邻的两个元素并交换它们的位置,最终得到一个有序数组。
在 `main` 函数中,我们定义了一个无序数组 `arr`,指定了数组长度为 6,然后调用 `bubble_sort` 函数进行排序。最后输出排好序的数组。
3、简单选择排序算法程序设计:
简单选择排序算法也是一种简单的排序算法,它的基本思想是:对于一个长度为 n 的数组,从第一个元素开始,依次选出最小的元素,然后将它和数组的第一个元素交换位置,这样第一个位置就排好了。然后对剩下的 n-1 个元素进行同样的操作,直到整个数组都被排好序为止。
下面是简单选择排序算法的 C++ 实现代码:
```cpp
#include <iostream>
using namespace std;
void selection_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
int min_index = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
swap(arr[i], arr[min_index]);
}
}
int main() {
int arr[] = {5, 2, 4, 6, 1, 3};
int n = sizeof(arr) / sizeof(int);
selection_sort(arr, n);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
上述代码中,我们定义了一个 `selection_sort` 函数,该函数接收两个参数:数组 `arr` 和数组长度 `n`。在函数中,我们使用两个嵌套的 for 循环,依次选出最小的元素并交换它和数组的第一个元素的位置,最终得到一个有序数组。
在 `main` 函数中,我们定义了一个无序数组 `arr`,指定了数组长度为 6,然后调用 `selection_sort` 函数进行排序。最后输出排好序的数组。
希望上述内容能够对您有所帮助!