php选择排序详解笔记

来源:互联网 发布:淘宝哪个返还网最高 编辑:程序博客网 时间:2024/05/16 06:02

冒泡

/*选择排序 selectsort *介绍: * 选择排序无疑是最简单直观的排序 *选择排序思路: * 在要排序的一组数中,[选出最小]的一个数与第一个位置的数交换。   然后在剩下的数当中再找最小的与第二个位置的数交换,   如此循环到倒数第二个数和最后一个数比较为止 *步骤:  在未排序序列中[找到最小(大)]元素,存放到排序序列的起始位置。  再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。  以此类推,直到所有元素均排序完毕。 *选择排序与冒泡排序的区别:  它们在步骤上是一样的,区别在于步骤,也就是在未排序列中,找到最大(小)元素方法不一样  冒泡:在未排序列中,相邻比较,找到最大最少  选择:在未排序列中,选择一个最少的位置,与未排序列每个元素比较,找到最大最少*/

代码

$arr=array(    10,5,1,3,2,6,9,7,4,8);function select_sort($arr){    $total_num=count($arr);    for($i=0;$i<$total_num;$i++){        $p=$i;//假设最小的位置        for($k=$i+1;$k<$total_num;$k++){            //比较,发现更小的,记录下最小值的位置;并且在下次比较时采用已知的最小值进行比较。            if($arr[$p]>$arr[$k]){                $p=$k;            }        }        //已经确定了当前的最小值的位置,保存到$p中。如果发现最小值的位置与当前假设的位置$i不同,将位置对应的值互换即可。        if($p!==$i){            $tem=$arr[$i];            $arr[$i]=$arr[$p];            $arr[$p]=$tem;        }    }    return $arr;}$ar=select_sort($arr);
0 0
原创粉丝点击