首页 > 代码库 > 排序算法: 选择排序法
排序算法: 选择排序法
选择排序法:在排序数组中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。
实现思路:
1,每次先找到最小数(最大数);
2,第i趟找到最小数和第i个数组互换;
3,重复(1)(2),直到最后排序成功;
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
6 | 10 | 4 | 90 | 52 | 77 | 8 | 3 | |
0 | 3 | 10 | 4 | 90 | 52 | 77 | 8 | 6 |
1 | 3 | 4 | 10 | 90 | 52 | 77 | 8 | 6 |
2 | 3 | 4 | 6 | 90 | 52 | 77 | 8 | 10 |
3 | 3 | 4 | 6 | 8 | 52 | 77 | 90 | 10 |
4 | 3 | 4 | 6 | 8 | 10 | 77 | 90 | 52 |
5 | 3 | 4 | 6 | 8 | 10 | 52 | 90 | 77 |
6 | 3 | 4 | 6 | 8 | 10 | 52 | 77 | 90 |
代码实现:
/************************************************************************************** * Description: * Input Args: * Output Args: * Return Value: *************************************************************************************/int select_sort (int array[], int n){ int i, j; int temp, little; for(i=0; i<n-1; i++) { /* find the Min one */ little=i; for(j=i+1; j<n; j++) { if(array[little] > array[j]) //小到大 little=j; }
/* exchange the postion if not the Min one */ if(little != i) { temp = array[little]; array[little] = array[i]; array[i] = temp; } } return 0;} /* ----- End of select_sort() ----- */
参考链接:http://blog.csdn.net/caryaliu/article/details/7438592
排序算法: 选择排序法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。