Maison > Article > développement back-end > Quatre algorithmes de tri d'entrée de gamme pour PHP
本篇文章给大家分享的内容是PHP的四种入门级排序算法,有着一定的参考价值,有需要的朋友可以参考一下
Quatre algorithmes de tri d'entrée de gamme : Tri à bulles, tri par sélection, tri par insertion, tri rapide trier.
$a = [5,2,4,1,6,5,3,8]; function a($a){ //冒泡排序 //$temp = 0; for($i=0;$i<count($a)-1;$i++){ for($j=0;$j<count($a)-1-$i;$j++){ if($a[$j]>$a[$j+1]){ $temp = $a[$j]; $a[$j] = $a[$j+1]; $a[$j+1] = $temp; } } } print_r($a); } a($a); function order($arr){ //选择排序 //定义中间变量 $temp = 0; $count = count($arr); for($i=0; $i<$count-1; $i++){ //定义最小位置 $minIndex = $i; for($j= $i+1; $j<$count; $j++){ if($arr[$j] < $arr[$minIndex]){ $minIndex = $j; } } if($i != $minIndex){ $temp = $arr[$i]; $arr[$i] = $arr[$minIndex]; $arr[$minIndex] = $temp; } } return $arr; } echo "<pre class="brush:php;toolbar:false">"; print_r(order($a)); function swap(array &$arr,$a,$b){ //直接插入排序 $temp = $arr[$a]; $arr[$a] = $arr[$b]; $arr[$b] = $temp; } function InsertSort(array &$arr){ $count = count($arr); //数组中第一个元素作为一个已经存在的有序表 for($i = 1;$i < $count;$i ++){ $temp = $arr[$i]; //设置哨兵 for($j = $i - 1;$j >= 0 && $arr[$j] > $temp;$j --){ $arr[$j + 1] = $arr[$j]; //记录后移 } $arr[$j + 1] = $temp; //插入到正确的位置 } } InsertSort($a); var_dump('<pre class="brush:php;toolbar:false">',$a); function quick_sort($arr)//函数实现快速排序 { //判断参数是否是一个数组 if(!is_array($arr)) return false; //递归出口:数组长度为1,直接返回数组 $length=count($arr); if($length<=1) return $arr; //数组元素有多个,则定义两个空数组 $left=$right=array(); //使用for循环进行遍历,把第一个元素当做比较的对象 for($i=1;$i<$length;$i++) { //判断当前元素的大小 if($arr[$i]<$arr[0]){ $left[]=$arr[$i]; }else{ $right[]=$arr[$i]; } } //递归调用 $left=quick_sort($left); $right=quick_sort($right); //将所有的结果合并 return array_merge($left,array($arr[0]),$right); } var_dump('<pre class="brush:php;toolbar:false">',$a); //调用 echo "<pre class="brush:php;toolbar:false">"; print_r(quick_sort($a));
Recommandations associées :
Exemple de partage d'exemple de tri par insertion de la série d'algorithmes de tri PHP
Explication détaillée du tri par tas de l'algorithme de tri PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!