首页 > 代码库 > PHP排序算法
PHP排序算法
插入排序,由第二位开始,一个个往前适当的位置(比左边大,比右边小)插入
1 <?php 2 3 $ary = array(39, 432, 5, 37, 43, 100, 32, 12); 4 5 for ($i = 1; $i < count($ary); $i++) { 6 7 $j = $i; 8 9 while ($j > 0 && $ary[$j - 1] > $ary[$j]) {10 11 $tmp = $ary[$j];12 $ary[$j] = $ary[$j - 1];13 $ary[$j - 1] = $tmp;14 $j--;15 }16 17 }18 for ($i = 0; $i < count($ary); $i++) {19 echo $ary[$i] . "<br/>";20 }21 ?>
冒泡排序,从最尾开始,和前一个比较,将小的移前,最后得出最小的放在第一位.
重复一次,将次小的放在第二位...
最终得出结果
1 <?php 2 3 $ary = array(39, 432, 5, 37, 43, 100, 32, 12); 4 5 for ($i = 0; $i < count($ary); $i++) { 6 7 $j = count($ary) - 1; 8 9 while ($j > $i) {10 if ($ary[$j - 1] > $ary[$j]) {11 $tmp = $ary[$j];12 $ary[$j] = $ary[$j - 1];13 $ary[$j - 1] = $tmp;14 }15 $j--;16 }17 18 }19 for ($i = 0; $i < count($ary); $i++) {20 echo $ary[$i] . "<br/>";21 }22 ?>
选择排序,由左边起第一个起,找出最小的和第一个交换位置,再从第二个起,找出最小的和第二个交换位置,重复可得结果
1 <?php 2 3 $ary = array(39, 432, 5, 37, 43, 100, 32, 12); 4 5 for ( $i = 0; $i < count($ary) - 1; $i++) 6 { 7 $j = $i; 8 $minpos = $i; 9 $first = $ary[$i];10 while ($j < count($ary) - 1)11 {12 if ($ary[$minpos] > $ary[$j + 1])13 {14 $minpos = $j + 1;15 }16 $j++;17 }18 $ary[$i] = $ary[$minpos];19 $ary[$minpos] = $first;20 }21 22 for ($i = 0; $i < count($ary); $i++) {23 echo $ary[$i] . "<br/>";24 }25 ?>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。