以下是个人的一些想法.....
解题思路:
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语言代码)浏览:744 |
川哥的吩咐 (C语言代码)浏览:875 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:541 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:613 |
【偶数求和】 (C语言代码)浏览:566 |
WU-小九九 (C++代码)浏览:1684 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:635 |
DNA (C语言描述,蓝桥杯)浏览:1555 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:691 |
关于float,double变量的几点说明浏览:1810 |