PHP快速排序法(数组排序)与简单选择排序

<pre name="code" class="php">//快速排序(数组排序)
function quicksort($array) {
if (count($array) <= 1) return $array;

$key = $array[0];
$left_arr = array();
$right_arr = array();

for ($i=1; $i<count($array); $i++){
       if ($array[$i] <= $key)
         $left_arr[] = $array[$i];
       else
         $right_arr[] = $array[$i];
}

$left_arr = quicksort($left_arr);
$right_arr = quicksort($right_arr);

return array_merge($left_arr, array($key), $right_arr);
}

 
 
<?php 
/** 
* 简单选择排序 simple selection sort 
* 
* 原理: 一次选定数组中的每一个数,记下当前位置并假设它是从当前位置开始后面数中的最小数min=i,从这个数的下一个数开始扫描直到最后一个数,并记录下最小数的位置min,扫描结束后如果min不等于i,说明假设错误,则交换min与i位置上数。 
*/ 
function sort_simple_selection($list) 
{ 
$len = count($list); 
if(empty($len)) return $list; 
for($i = 0;$i < $len; $i++) 
{ 
$min = $i; 
for($j = $i + 1; $j < $len; $j++) 
{ 
//if($list[$j] > $list[$min]) // 从大到小 
if($list[$j] < $list[$min]) // 从小到大 
{ 
$min = $j; 
} 
echo implode(',',$list)."#pos=".($min + 1)." min=".$list[$min]."<br/>"; 
} 
if($min != $i) 
{ 
$temp = $list[$i]; 
$list[$i] = $list[$min]; 
$list[$min] = $temp; 
} 
echo "-------------------------<br/>"; 
} 
} 
$list = array(4,3,2,1,5,7,3,7); 
$list = sort_simple_selection($list); 



                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值