用C++同时实现顺序排序,折半排序和冒泡排序
时间: 2024-02-01 19:14:51 浏览: 21
以下是C++实现顺序排序、折半排序和冒泡排序的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// 顺序排序
void sequentialSort(vector<int>& nums) {
sort(nums.begin(), nums.end());
}
// 折半排序
void binarySort(vector<int>& nums) {
for (int i = 1; i < nums.size(); i++) {
int left = 0, right = i - 1;
int key = nums[i];
while (left <= right) {
int mid = (left + right) / 2;
if (nums[mid] > key) {
right = mid - 1;
} else {
left = mid + 1;
}
}
for (int j = i - 1; j >= left; j--) {
nums[j + 1] = nums[j];
}
nums[left] = key;
}
}
// 冒泡排序
void bubbleSort(vector<int>& nums) {
for (int i = 1; i < nums.size(); i++) {
bool flag = true;
for (int j = 0; j < nums.size() - i; j++) {
if (nums[j] > nums[j + 1]) {
swap(nums[j], nums[j + 1]);
flag = false;
}
}
if (flag) {
break;
}
}
}
int main() {
vector<int> nums = {5, 3, 8, 4, 2};
sequentialSort(nums);
for (int num : nums) {
cout << num << " ";
}
cout << endl;
nums = {5, 3, 8, 4, 2};
binarySort(nums);
for (int num : nums) {
cout << num << " ";
}
cout << endl;
nums = {5, 3, 8, 4, 2};
bubbleSort(nums);
for (int num : nums) {
cout << num << " ";
}
cout << endl;
return 0;
}
```
输出:
```
2 3 4 5 8
2 3 4 5 8
2 3 4 5 8
```