描述
用选择法对10个整数排序。
输入
输入包含10个整数,用空格分隔。
输出
输出排序后的结果,用空格分隔。
输入样例 1
3 1 4 1 5 9 2 6 5 3
输出样例 1
1 1 2 3 3 4 5 5 6 9
输入样例 2
2 4 6 8 10 12 14 16 18 20
输出样例 2
2 4 6 8 10 12 14 16 18 20
输入样例 3
-3 5 7 1 8 2 4 0 -2 9
输出样例 3
-3 -2 0 1 2 4 5 7 8 9
代码一(如下):不采用指针
cpp
#include <iostream>
using namespace std;
int main()
{
int a[10];
int i,j,k;
for (i = 0; i < 10; i++)
{
cin >> a[i];
}
for (i = 0; i < 10; i++)
{
k = i;
for (j = i + 1; j < 10; j++)
{
if (a[k] > a[j])k = j;
}
int t = a[k];
a[k] = a[i];
a[i] = t;
}
for (i = 0; i < 10; i++)
{
cout << a[i]<<" ";
}
return 0;
}
代码二(如下):采用指针
cpp
#include <iostream>
using namespace std;
int exchange(int *);
int main()
{
int a[10];
int i;
int* p = a;
for (i = 0; i < 10; i++)
{
cin >> a[i];
}
exchange(a);
for (i = 0; i < 10; i++)
{
cout << a[i]<<" ";
}
return 0;
}
int exchange(int *p)
{
int i, j, k;
for (i = 0; i < 10; i++)
{
k = i;
for (j = i + 1; j < 10; j++)
{
if (*(p + k) > *(p + j))k = j;
}
int t = *(p + k);
*(p + k) = *(p + i);
*(p + i) = t;
}
return *p;
}