以下是个人的一些想法.....
解题思路:
1.找出一个最大数/最小数,交换到数组最前面
2.在剩下的数里,再找出一个最大数/最小数,交换到剩下数的最前面
3.重复2步骤,直至所有数都排列好
注意事项:
1.为什么说选择法是一种不稳定的算法,因为它可能会打乱相同数字的顺序
2.选择法与冒泡法的区别:1.比较次数的初始值不同
选择法:j = i ;
冒泡法:j = 0;
2.比较次数不同
选择法:j<数组元素个数;
冒泡法:j<数组元素个数 - 1 - i;
3.Swap(交换)所处的位置不同
选择法:Swap交换的位置处于外循环里面
冒泡法:Swap交换的位置处于内循环里面
参考代码:
#include <stdio.h> int main() { int temp, min, a[10]; for (int i = 0; i < 10; i++) scanf("%d", &a[i]); for (int i = 0; i < 9; i++) { min = i; for (int j = i; j < 10; j++) if (a[min] < a[j]) min = j; temp = a[i]; a[i] = a[min]; a[min] = temp; } for (int i = 0; i < 10; i++) { printf("%d\n",a[i]); } return 0; }
0.0分
0 人评分
淘淘的名单 (C语言代码)答案错误???浏览:624 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:690 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:806 |
WU-小九九 (C++代码)浏览:1713 |
WU-C语言程序设计教程(第三版)课后习题11.12 (C++代码)(想学链表的小伙伴可以看看)浏览:964 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:721 |
1071题解浏览:584 |
盐水的故事 (C语言代码)浏览:1602 |
马拦过河卒 (C语言代码)浏览:1213 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:714 |