用c++实现起泡排序算法
时间: 2024-01-13 15:03:54 浏览: 48
以下是用C++实现冒泡排序算法的代码示例:
```cpp
#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]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {5, 0, 1, 2, 3, 4};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
cout << "排序后的数组:";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
相关问题
C++数据结构与算法起泡排序
好的,下面是C++语言实现的起泡排序(Bubble Sort)算法示例:
```cpp
#include <iostream>
using namespace std;
void bubbleSort(int arr[], int n) {
bool swapped;
for (int i = 0; i < n - 1; i++) {
swapped = false;
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j+1]) {
swap(arr[j], arr[j+1]);
swapped = true;
}
}
// 如果本轮没有元素交换,则说明已经排好序,退出循环
if (swapped == false) {
break;
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
cout << "排序后的数组:" << endl;
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
在这个示例中,我们定义了一个名为`bubbleSort()`的函数,它接受一个整型数组和数组的大小作为参数。在函数内部,我们使用两层循环来遍历数组,如果相邻的两个元素大小关系不符合要求,则交换它们的位置。在每一轮内部循环结束后,我们检查是否有元素发生交换,如果没有,则说明已经排好序,可以直接退出循环。
最后,我们在`main()`函数中创建一个整型数组,并调用`bubbleSort()`函数来对数组进行排序。排序完成后,我们遍历数组并输出排序后的结果。
用c++编写一个双向起泡的排序算法
下面是使用 C++ 实现双向起泡排序算法的代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
vector<int> cocktail_sort(vector<int>& arr) {
int left = 0, right = arr.size() - 1;
while (left < right) {
// 从左到右排序
for (int i = left; i < right; i++) {
if (arr[i] > arr[i+1]) {
swap(arr[i], arr[i+1]);
}
}
right--;
// 从右到左排序
for (int j = right; j > left; j--) {
if (arr[j-1] > arr[j]) {
swap(arr[j-1], arr[j]);
}
}
left++;
}
return arr;
}
int main() {
vector<int> arr = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
vector<int> sorted_arr = cocktail_sort(arr);
for (auto num : sorted_arr) {
cout << num << " ";
}
cout << endl;
return 0;
}
```
该算法的时间复杂度为 O(n^2),空间复杂度为 O(1)。
相关推荐
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)