Heim > Artikel > Backend-Entwicklung > PHP兑现各种排序
PHP实现各种排序
<?php /** * 各种排序 * @author zhaojaingwei * @since 2011/11/21 16:14 * */$list = array(3,5,1,2,10,8,15,19,20);//快排function fast(&$list, $low, $high){ if($high - $low > 5){ while($low $temp){ $high --; } $list[$low] = $list[$high]; while($low 0; $i --){ swap($list, $i, 0); heapfy($list, 0, $i - 1); }}//创建堆function buildHeap(&$list){ for($i = (count($list) - 2)/2; $i >= 0; $i --){ heapfy($list, $i, count($list) - 1); }}//维护堆function heapfy(&$list, $low, $high){ $temp = $list[$low]; for($i = ($low * 2 + 1); $i = 1){ for($i = $code; $i = 0 && $list[$j] > $temp; $j -= $code){ $list[$j + $code] = $list[$j]; $a ++; } $list[$j + $code] = $temp; } } $code = $code/3; } echo $a;}//直接插入排序function insert(&$list){ $a = 0; for($i = 1; $i $temp; $j --){ $a ++; $list[$j + 1] = $list[$j]; } $list[$j + 1] = $temp; } } echo $a;}//简单选择排序function select(&$list){ $a = 0; for($i = 0; $i = $i; $j --){ $a ++; if($list[$j] > $list[$j + 1]){ $swap = TRUE; swap($list, $j, $j + 1); } } } echo $a;}//移动或交换函数function swap(&$list, $i, $j){ $temp = $list[$i]; $list[$i] = $list[$j]; $list[$j] = $temp;}?>