选择排序
2015-08-17 13:26
351 查看
选择排序
选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。
遍历一次,记录下最值元素所在位置,遍历结束后,将此最值元素调整到合适的位置
这样一次遍历,只需一次交换,便可将最值放置到合适位置
![](http://img.my.csdn.net/uploads/201303/11/1362982677_7833.png)
![](http://img.my.csdn.net/uploads/201303/11/1362982776_7504.png)
$arr = array(2,1,3,6,4,5);
function selectSort($arr){
$temp = '';
//开始第一次的循环
$arr_len = count($arr);
$min_val = 0;
for ($i=0; $i < $arr_len ; $i++) {
//max_val是记录最小值的数据
$min_val = $i;
for ($j=$i+1; $j < $arr_len ; $j++) {
if($arr[$min_val]>$arr[$j]){
$min_val = $j;
}
}
if($min_val != $i ){
$temp = $arr[$min_val];
$arr[$min_val] = $arr[$i];
$arr[$i] = $temp;
}
}
return $arr;
}
print_r(selectSort($arr));
选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。
简单选择排序
具体方法为:遍历一次,记录下最值元素所在位置,遍历结束后,将此最值元素调整到合适的位置
这样一次遍历,只需一次交换,便可将最值放置到合适位置
![](http://img.my.csdn.net/uploads/201303/11/1362982677_7833.png)
![](http://img.my.csdn.net/uploads/201303/11/1362982776_7504.png)
$arr = array(2,1,3,6,4,5);
function selectSort($arr){
$temp = '';
//开始第一次的循环
$arr_len = count($arr);
$min_val = 0;
for ($i=0; $i < $arr_len ; $i++) {
//max_val是记录最小值的数据
$min_val = $i;
for ($j=$i+1; $j < $arr_len ; $j++) {
if($arr[$min_val]>$arr[$j]){
$min_val = $j;
}
}
if($min_val != $i ){
$temp = $arr[$min_val];
$arr[$min_val] = $arr[$i];
$arr[$i] = $temp;
}
}
return $arr;
}
print_r(selectSort($arr));
相关文章推荐
- android中的与GPS定位的API
- 九度oj 1067
- IIC知识
- 极客编程小挑战#30:用CSS3实现各种钟表的显示效果
- F.lux——自动调整屏幕亮度与颜色,降低蓝光
- AS3写的页面注册登录组件
- 【effective c++读书笔记】【第7章】模板和泛型编程(3)
- 【effective c++读书笔记】【第7章】模板和泛型编程(3)
- 如何在QML应用中调用系统设置中的页面来设置我们的系统
- 【bzoj3306】 树 dfs序+线段树
- UI星辰:UI代码创建视图和Label设置
- CGI编程完全手册
- Uncaught TypeError: Cannot read property 'prototype' of null using Openerp 7.0
- mysql中文乱码解决方案
- IOS中CALayer的使用
- mac 下修改mysql的密码
- 栈 Deque
- android 音乐模仿器demo,实现指定目录下的音乐循环播放,和在线播放的方法。
- 开发笔记:基于EntityFramework.Extended用EF实现指定字段的更新
- linux数据流重定向