C++的一个题目

来源:百度知道 编辑:UC知道 时间:2024/05/16 16:19:05
排序过程:
(1)首先通过n-1次比较,从n个数中找出最小的, 将它与第一个数
交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上
(2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,
将它与第二个数交换—第二趟选择排序
(3)重复上述过程,共经过n-1趟排序后,排序结束

#include <iostream.h>

void SelectSort(int a[], int n);

void main()
{
const int N = 10;
int a[N];

cout<<"请输入数组:"<<endl;
for(int i = 0; i < N; i++)
cin>>a[i];

SelectSort(a,N);

cout<<"排序后的结果是:"<<endl;
for(i = 0; i < N; i++)
cout<<a[i];
}

void SelectSort(int a[], int n)
{
for(int i = 0; i < n; i++)
{
int p = i;
for(int j = i + 1; j < n; j++)
{
if(a[p] > a[j])
p = j;
}
int t = a[p];
a[p] = a[i];
a[i] = t;
}
}

这是直接选择排序的算法描述,你的问题是什么?