冒泡排序
时间复杂度O(n*n)
#include<iostream>
using namespace std;
//void Bubble(int list[],int n){
// for(int i = n-1; i > 0; --i){
// for(int j = 0;j < i-1; ++j){
// if(list[j] > list[j+1]){
// swap(list[j],list[j+1]);
// }
// }
// }
//}
void Bubble(int list[],int n){
for(int i = 0; i < n-1; ++i){
for(int j = 0;j < n-i-1; ++j){
if(list[j] > list[j+1]){
swap(list[j],list[j+1]);
}
}
}
}
int main(){
int array[20];
for(int i = 0; i < 20; i++){
array[i] = rand()%100;
}
for(int i = 0; i < 20; ++i){
cout << array[i] << " ";
}
cout << endl;
Bubble(array,20);
for(int i = 0; i < 20; ++i){
cout << array[i] << " ";
}
return 0;
}
结果:
41 67 34 0 69 24 78 58 62 64 5 45 81 27 61 91 95 42 27 36
0 5 24 27 27 34 36 41 42 45 58 61 62 64 67 69 78 81 91 95
上面有两种写法,思考方式刚好相反,但是都可以工作。