排序------快速,插入,选择,冒泡

来源:互联网 发布:淘宝产品文案怎么写 编辑:程序博客网 时间:2024/06/05 11:28
快速排序/数组快速排序    先取出数组第一个  把每个和它比较,比它小的放在l数组,大的放r数组,一直比较,最后合到一个数组/*function kuaisu($a){    $c=count($a);    if($c<=1){        return $a;    }    $l=$r=array();    for($i=1;$i<$c;$i++){        if($a[$i]<$a[0]){            $l[]=$a[$i];        }else{            $r[]=$a[$i];        }    }    $l=kuaisu($l);    $r=kuaisu($r);    return array_merge($l,array($a[0]),$r);}$m=array(1,7,3,2,5,0);//echo kuaisu($m);print_r(kuaisu($m)) ;*/


插入排序    先找一个数进行比较,如果前一个比后一个大  ,调换位置

function charu($a){    $c = count($a);    for($i=1;$i<$c;$i++){        $t = $a[$i];        for($j=$i;$j>0 && $a[$j-1]>$t;$j--){            $a[$j] = $a[$j-1];        }        $a[$j] = $t;    }    return $a;}$m=array(1,7,3,2);print_r(charu($m));或者
function charu($a){    $c = count($a);    for($i=1;$i<$c;$i++){        $t = $a[$i];        for($j=$i;$j>0;$j--){            if($a[$j-1]>$t){                $a[$j] = $a[$j-1];                $a[$j-1] = $t;            }        }        //$a[$j] = $t;    }    return $a;}

选择排序
//选择排序   第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推/*初始序列:{ 49 27 65 97 76 12 38 }第1趟:12与49交换:12 { 27 65 97 76 49 38 }第2趟:27不动 :12 27 { 65 97 76 49 38 }第3趟:65与38交换:12 27 38 { 97 76 65 49}第4趟:97与49交换:12 27 38 49 { 97 76 65 }第5趟:76与65交换:12 27 38 49 65 { 97 76 }第6趟:97与76交换:12 27 38 49 65 76 97 完成*//*function xuanze($a){    $c = count($a);    for($i=0;$i<$c;$i++){        for ($j=$i+1;$j<$c;$j++){            if($a[$i]>$a[$j]){                $t = $a[$j];                $a[$j] = $a[$i];                $a[$i] = $t;            }        }    }    return $a;}$m=array(1,7,3,2);print_r(xuanze($m));

冒泡 从后往前
  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。[1

function maopao($a){    $c = count($a);    for($i=0;$i<$c;$i++){        for ($j=$c-1;$j>$i;$j--){            if($a[$j]<$a[$j-1]){                $t = $a[$j-1];                $a[$j-1] = $a[$j];                $a[$j] = $t;            }        }    }    return $a;}


0 0
原创粉丝点击