zoukankan      html  css  js  c++  java
  • 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 ?>
  • 相关阅读:
    给字符数组赋值的方法
    linux服务之varnish
    Java实现第八届蓝桥杯承压计算
    Java实现第八届蓝桥杯承压计算
    Java实现第八届蓝桥杯迷宫
    Java实现第八届蓝桥杯纸牌三角形
    Java实现第八届蓝桥杯纸牌三角形
    Java实现第八届蓝桥杯分巧克力
    Java实现第八届蓝桥杯迷宫
    Java实现第八届蓝桥杯分巧克力
  • 原文地址:https://www.cnblogs.com/jimzbom/p/3861430.html
Copyright © 2011-2022 走看看