您好,欢迎访问一九零五行业门户网

如何用php实现各种排序算法

本篇文章主要介绍如何用php实现各种排序算法,冒泡排序,交换排序,选择法排序,插入法排序,快速排序,根据实际情况可选择不同的排序算法。效率也有所不同。 重要的还是先理解了算法,实现起来才水到渠成。感兴趣的朋友参考下,希望对大家有所帮助。
   冒泡排序:
<?php function bubblesort($arr){ $num = count($arr); for($i=1;$i<$num;$i++){ for($j=$num-1;$j>=$i;$j--){ if($arr[$j]<$arr[$j-1]){ $itemp = $arr[$j-1]; $arr[$j-1] = $arr[$j]; $arr[$j] = $itemp; } } } return $arr; } ?>
交换法排序:
<?php function exchangesort($arr){ $num = count($arr); for($i=0;$i<$num-1;$i++){ for($j=$i+1;$j<$num;$j++){ if($arr[$j]<$arr[$i]){ $itemp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $itemp; } } } return $arr; } ?>
选择法排序:
<?php function selectsort($arr){ $num = count($arr); for($i=0;$i<$num-1;$i++){ $itemp = $arr[$i]; $ipos = $i; for($j=$i+1;$j<$num;$j++){ if($arr[$j]<$itemp){ $itemp = $arr[$j]; $ipos = $j; } } $arr[$ipos] = $arr[$i]; $arr[$i] = $itemp; } return $arr; } ?>
插入法排序:
<?php function insertsort($arr){ $num = count($arr); for($i=1;$i<$num;$i++){ $itemp = $arr[$i]; $ipos = $i-1; while(($ipos>=0) && ($itemp<$arr[$ipos])){ $arr[$ipos+1] = $arr[$ipos]; $ipos--; } $arr[$ipos+1] = $itemp; } return $arr; } ?>
快速排序 :
<?php function quicksort($arr){ $num = count($arr); $l=$r=0; for($i=1;$i<$num;$i++){ if($arr[$i] < $arr[0]){ $left[] = $arr[$i]; $l++; }else{ $right[] = $arr[$i]; $r++; } } if($l > 1){ $left = quicksort($left); } $new_arr = $left; $new_arr[] = $arr[0]; if($r > 1){ $right = quicksort($right); } for($i=0;$i<$r;$i++){ $new_arr[] = $right[$i]; } return $new_arr; } $arr = array(7,1,6,5,2); $arr_new = quicksort($arr); ?>
相关推荐:
python实现的直接插入排序算法示例
常用的6大js排序算法与比较
php四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
以上就是如何用php实现各种排序算法的详细内容。
其它类似信息

推荐信息