數列排序
問題描述
給定一個長度為n的數列,将這個數列按從小到大的順序排列。1<=n<=200
輸入格式
第一行為一個整數n。
第二行包含n個整數,為待排序的數,每個整數的絕對值小于10000。
輸出格式
輸出一行,按從小到大的順序輸出排序後的數列。
樣例輸入
5
8 3 6 4 9
樣例輸出
3 4 6 8 9
代碼:
using namespace std;
const int maxn = 1e3;
int a[maxn];
int main() {
int i,n;
while (cin >> n) { //輸入資料個數
for (i = 0; i < n; i++)//循環輸入資料存儲進數組
{
int x;
cin >> x;
a[i] = x;
}
int temp;//定義臨時變量
for (int j = n; j > 1; j--) { //控制比較的次數因為剩最後一個數天然有序是以比較n-1個數就可以
for (i = 0; i < j - 1; i++) { //每個數比較j-1次,因為每比較一個數後就會出現一個最大的數,下次循環可不将下一個數與最本次循環得出的最大的數比較
if (a[i] > a[i + 1]) { //每次比較相鄰的兩個數
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
}
for (i = 0; i < n; i++) {
cout << a[i]<<" ";
}
}
}
學。。。。。