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); } 推荐文章
发表评论