這種兩兩相鄰互換的才叫冒泡排序法。
#include <iostream>
using namespace std;
int main(void){
int a[10]={23,10,6,89,302,74,100,8,383,44};
int x,y,temp;
for(x=1;x<=10;x++)
for(y=1;y<10;y++)
if(a[y-1]>a[y]){
temp=a[y-1];
a[y-1]=a[y];
a[y]=temp;
}
for(x=0;x<10;x++)
cout<<a[x]<<" ";
return 0;
}
而下面那種先用第一個一直往後比的方法選擇排序法。
#include <iostream>
using namespace std;
int main() {
int n, a[1000]; // 一共n个数,n不超过1000。a用来保存这些数
cin >> n;
// 输入n个数
for (int i = 0; i < n; i++) {
cin >> a[i];
}
// 冒泡,不断比较相邻的两个数,如果顺序错了,那么就交换
for (int i = 0; i < n - 1; i++) {
for (int j = 1; j < n - i; j++) {
if (a[j - 1] > a[j]) {
int temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
}
}
// 依次输出
for (int i = 0; i < n; i++) {
cout << a[i] << endl;
}
return 0;
} |