选择排序算法
来源:互联网 发布:怎么查看计算机端口 编辑:程序博客网 时间:2024/05/18 00:21
演示数组为:
$a = array(9 , 3, 5 , 8 , 2 , 7);
演算过程如下:
求得一个数组的最大值的下标,并将这个最大值下标的单元跟最后一个单元进行交换;
然后,继续从剩余数据中取得最大值的下标,并将这个最大值下标的单元跟剩余的最后一个单元交换
以此类推,直到只剩一个数据,就不用找了
规律描述:
1. 假设数组的数据有N个
2. 要进行查找最大值单元并进行交换的”趟数”为 N-1
3. 每一趟都要求出”剩余数据”中的最大值单元,并且,剩余数据的数量每一趟都少1个,第一趟有N个
4. 每一趟找出最大值单元后,都有进行交换: 最大值单元跟 剩余数据中的最后一个单元交换
/** *规律描述: *1.假设数组的数据有N个 *2.要进行查找最大值单元并进行交换的”趟数”为 N-1 *3.每一趟都要求出”剩余数据”中的最大值单元,并且,剩余数据的数量每一趟都少1个,第一趟有N个 *4.每一趟找出最大值单元后,都有进行交换: 最大值单元 跟 剩余数据中的最后一个单元交换 **/$n = count($a);for ($i=0; $i < $n-1; $i++) { //趟数//每一趟开始找其中的最大值$max = $a[0]; //找最大值先取得第一项的值$pos = 0; //找最大值的坐标也要先取得第一项的坐标for($k=0;$k<$n-$i;++$k){//这里$k也可以理解为下标if($a[$k] > $max){$max = $a[$k];$pos = $k;}}//前面一定可以获得最大值及其所在下标,即最大值单元//然后开始进行交换$temp = $a[$pos];$a[$pos] = $a[$n-$i-1]; //$n-$i-1就是剩余数据中的最后一个单元的下标$a[$n-$i-1] = $temp;}
0 0
- 排序算法-选择排序
- 排序算法-选择排序
- 排序算法--选择排序
- 排序算法---选择排序
- 排序算法-选择排序
- 排序算法-选择排序
- 排序算法-选择排序
- 排序算法---选择排序
- 排序算法--选择排序
- 排序算法--选择排序
- 排序算法--选择排序
- 排序算法--选择排序
- 算法-排序-选择排序
- 排序算法:选择排序
- 排序算法---选择排序
- 排序算法:选择排序
- 排序算法--选择排序
- 算法排序 -- 选择排序
- Hibernate 3.6.10自带开发jar包问题
- 模拟浏览器下载文件
- 调试EasyDarwin开源项目EasyCamera-HK接入海康IPCamera 摄像机所遇到的大坑
- python操作mysql
- js调用函数时传入的参数个数与函数定义时的参数个数不符时的操作
- 选择排序算法
- 关于linux中的中文输入
- Demo02__int型
- 【codevs 1127】接水问题
- Android三大测试方法介绍——Android学习笔记
- 【2】JS输出日期
- [czyz模拟赛]WM度假
- 学渣的Android之广播,日志,权限
- 100个经典的C算法