#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;
}
system("pause");
return 0;
}
例二:找出第K大的數
描述
用戶輸入N和K,然後接着輸入N個正整數(無序的),程序在不對N個整數排序的情況下,找出第K大的數。注意,第K大的數意味着從大到小排在第K位的數。
輸入
N
K
a1 a2 a3 a4 ….. aN
輸出
b
#include<iostream>
using namespace std;
int main(){
int a[1000];//存放要排序的數
int N;
int K;
cin >> N;
cin >> K;
for (int i = 0; i < N; i++){
cin >> a[i];
}
//冒泡排序法對數組進行排序
for (int i = 0; i < N; 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;
}
}
}
cout << a[K - 1] << endl;
system("pause");
return 0;
}