7-1 选择排序

分数 10

全屏浏览题目

切换布局

作者 魏峻

单位 陕西理工大学

选择排序,从头至尾扫描序列,找出最小的一个元素,和第一个元素交换,接着从剩下的元素中继续这种选择和交换方式,最终得到一个有序序列。

输入格式:

输入在第1行中给出N(1

输出格式:

给出选择排序每一遍后的中间结果数列,数字间以空格分隔,但末尾不得有多余空格。注意:当排序完成时应立即停止。

输入样例1:

7

4 5 7 6 3 2 1

输出样例1:

1 5 7 6 3 2 4

1 2 7 6 3 5 4

1 2 3 6 7 5 4

1 2 3 4 7 5 6

1 2 3 4 5 7 6

1 2 3 4 5 6 7

输入样例2:

5

1 2 3 5 4

输出样例2:

1 2 3 4 5

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include

#include

using namespace std;

int SelectSort(int* a, int c,int n)

{

if (c < n)

{

int k = c;

for (int i = k + 1; i <= n; i++)

{

int temp = a[k];

if (a[i] < temp)

{

temp = a[i];

k = i;

}

}

if (k!= c)

{

swap(a[c], a[k]);

for (int j = 0; j < n; j++)

{

cout << a[j] << " ";

}

cout << a[n] << endl;

}

}

int stop = 0;

for (int i = 0; i <= n - 1; i++)

{

if (a[i] > a[i + 1])

{

stop = 1;

}

}

if (!stop)

{

return 0;

}

else

{

SelectSort(a, c + 1, n);

}

}

int main()

{

int n;

cin >> n;

int a[128]{};

for (int i = 0; i < n; i++)

{

cin >> a[i];

}

int c = 0;

SelectSort(a, c, n - 1);

}

 

推荐文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。