经典排序算法之简单选择排序
来源:互联网 发布:nginx安装ssl模块 编辑:程序博客网 时间:2024/05/01 20:32
前面在介绍冒泡排序的时候,有提到一种简单排序算法,就是从0开始,每次确定一个位置的元素。假设当前需要确定的位置下标为
i,则将i处的元素与后面的元素逐个比较,并将每次比较结果中较小的元素存放在i处,从而保证i处一直保存着最小元素。
简单的选择排序算法与这种算法思路一样,但是选择排序在比较的过程中,并没有将比较结果存放在i处,而是保存每次比较结果中
较小元素的下标到min中,从而保证min永远指向较小元素,最后将min处元素与i处元素交换。从这里可以看出,选择排序是一种
不稳定的排序。以图来表示:
第一轮确定的是下标为0的位置元素,一轮比较下来,最小元素的下标是min = 1,因此,将min处元素与0处元素互换。
以此类推。
将这个过程量化:假设有n个元素,需要确定的下标有0到n-1。最后一个元素无需比较。假设当前需要确定的下标为i,则将min初
始化为i,然后将min处的元素依次与后面n-1-i个元素相比较,min每次指向较小元素。
代买如下:
void SelectSort(int array[], int arrayCount){int min;for(int i = 0; i < arrayCount - 1; ++i){min = i;for(int j = i + 1; j < arrayCount; ++j){if(array[j] < array[min]) //使得min总是指向最小元素min = j;}if(min != i) //即min有移动过{int temp = array[i];array[i] = array[min];array[min] = temp;}}}
地,而后者则只是暂时存放一下其地址,到最后的时候才需要交换。因此,后者省略了很多的交换操作,更优。
0 0
- 经典排序算法之简单选择排序
- 经典排序算法之选择排序算法
- 经典算法之选择排序
- 经典算法之选择排序
- C--经典算法之排序---选择排序
- 经典算法学习:排序之选择排序
- 经典排序算法之选择排序
- 算法 排序算法之简单选择排序
- 【排序算法】经典排序算法之选择排序
- 排序算法之二:选择排序之【简单选择排序】
- 排序算法之简单选择排序
- 排序算法入门之简单选择排序
- 排序算法之简单选择排序
- 常用排序算法之简单选择排序
- 排序算法之简单选择排序
- 排序算法之简单选择排序
- 排序算法之简单选择排序
- 八大排序算法之简单选择排序
- hdu 5360 Hiking(2015 Multi-University Training Contest 6)
- error:“1”: 宏形参表中的意外
- 仿Android L 长按Home键显示最近使用应用信息及清理
- Android布局优化
- iOS统一设置状态栏的样式,交给代理AppDelegate
- 经典排序算法之简单选择排序
- Android中的布局优化方法
- HDOJ 题目4251The Famous ICPC Team Again(划分树)
- CSS学习笔记
- Hadoop入门(10)_通过java代码实现从本地的文件上传到Hadoop的文件系统
- 字符串替换
- HTML中title标签值动态写入和获取
- 响应式布局笔记
- javax.naming.NoInitialContextException: Need to specify class name in environment or system property