冒泡排序
- 特点:相邻元素两两比较,把较大的元素往下交换
- 缺点:数据交换的次数太多了,效率低
时间复杂度
排序算法 | 平均时间复杂度 | 最好时间复杂度 | 最坏时间复杂度 | 空间复杂度 |
---|
冒泡排序 | O(n^2) | O(n) | O(n^2) | O(1) |
代码
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
void BubbleSort(int arr[], int size) {
for( int i = 0; i < size - 1; i++) {
bool flag = false;
for(int j = 0; j < size - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
flag = true;
}
}
if (!flag) {
return;
}
}
}
int main() {
int arr[10];
srand(time(nullptr));
for (int i = 0; i < 10; i++) {
arr[i] = rand() % 100 + 1;
}
for (int v : arr) {
cout << v << " ";
}
cout << endl;
BubbleSort(arr, 10);
for (int v : arr) {
cout << v << " ";
}
cout << endl;
return 0;
}
测试
➜ build git:(main) ✗ ./BubbleSort
54 33 55 29 52 58 83 24 35 66
24 29 33 35 52 54 55 58 66 83