php 冒泡排序,选择排序、插入排序、快速排序

来源:互联网 发布:nginx 301跳转 编辑:程序博客网 时间:2024/06/05 17:47
<?php/** * @1. 冒泡排序 */$arr=array(1,43,54,62,21,66,32,78,36,76,39);function getpao($arr){    $len=count($arr);    for($i=1;$i<$len;$i++)    {        for($k=0;$k<$len-$i;$k++)        {            if($arr[$k]>$arr[$k+1])            {                $tmp=$arr[$k+1];                $arr[$k+1]=$arr[$k];                $arr[$k]=$tmp;            }        }    }return $arr;}/** * @2. 选择排序法: */function select_sort($arr) {    for($i=0, $len=count($arr); $i<$len-1; $i++) {        $p = $i;        for($j=$i+1; $j<$len; $j++) {            if($arr[$p] > $arr[$j]) {                $p = $j;            }        }        if($p != $i) {            $tmp = $arr[$p];            $arr[$p] = $arr[$i];            $arr[$i] = $tmp;        }    }    return $arr;}/** * @3.插入排序法*/function insert_sort($arr) {    for($i=1, $len=count($arr); $i<$len; $i++) {        $tmp = $arr[$i];        for($j=$i-1;$j>=0;$j--) {            if($tmp < $arr[$j]) {                $arr[$j+1] = $arr[$j];                $arr[$j] = $tmp;            } else {                break;            }        }    }    return $arr;}/** * * @4.快速排序法 */function quick_sort($arr) {    $length = count($arr);    if($length <= 1) {        return $arr;    }    $base_num = $arr[0];    $left_array = array();//小于标尺的    $right_array = array();//大于标尺的    for($i=1; $i<$length; $i++) {        if($base_num > $arr[$i]) {            //放入左边数组            $left_array[] = $arr[$i];        } else {            //放入右边            $right_array[] = $arr[$i];        }    }    //再分别对 左边 和 右边的数组进行相同的排序处理方式    //递归调用这个函数,并记录结果    $left_array = quick_sort($left_array);    $right_array = quick_sort($right_array);    //合并左边 标尺 右边    return array_merge($left_array, array($base_num), $right_array);}/* * @随机生成100个100万以内的数 */function getNum($num){    $arr = array();    for($i=0;$i<=$num;$i++) {        $arr[] = rand(1, 1000000);    }    return $arr;}
阅读全文
0 0
原创粉丝点击