[PHP] php 插入排序 支持升序降序 →→→→→进入此内容的聊天室

来自 , 2020-01-28, 写在 PHP, 查看 103 次.
URL http://www.code666.cn/view/60792d85
  1. <?php
  2. class InsertManages {
  3.     //插入算法
  4.     function insert($rand_arr, $sort = '') {
  5.         //得到数组个数
  6.         $count = count($rand_arr);
  7.         echo '<hr>排序前<hr/><xmp>' . var_export($rand_arr, TRUE) . '</xmp>';
  8.         if ($sort == 'asc' || empty($sort)) {
  9.             for ($i = 1; $i < $count; $i++) {
  10.                 if ($rand_arr[$i] < $rand_arr[$i - 1]) {
  11.                     $t = $rand_arr[$i];
  12.                     for ($j = $i; $j > 0 && $rand_arr[$j - 1] > $t; $j--) {
  13.                         $rand_arr[$j] = $rand_arr[$j - 1];
  14.                         $rand_arr[$j - 1] = $t;
  15.                     }
  16.                 }
  17.             }
  18.             return $rand_arr;
  19.         } else if ($sort == 'desc') {
  20.             for ($i = $count - 2; $i >= 0; $i--) {
  21.                 if ($rand_arr[$i] < $rand_arr[$i + 1]) {
  22.                     $t = $rand_arr[$i];
  23.                     for ($j = $i + 1; $j < $count && $rand_arr[$j] > $t; $j++) {
  24.                         $rand_arr[$j - 1] = $rand_arr[$j];
  25.                         $rand_arr[$j] = $t;
  26.                     }
  27.                 }
  28.             }
  29.             return $rand_arr;
  30.         }
  31.     }
  32.  
  33.     //创建随机数组
  34.     function rands() {
  35.         $s = 100;
  36.         $arr = array();
  37.         for ($i = 0; $i < $s; $i++) {
  38.             $arr[] = rand(0, 1000);
  39.         }
  40.         return $arr;
  41.     }
  42.  
  43. }
  44.  
  45. $rand_arr = InsertManages::rands();
  46. echo '<hr>排序后<hr/><xmp>' . var_export(InsertManages::insert($rand_arr, 'desc'), TRUE) . '</xmp>';
  47. ?>
  48. //该片段来自于http://yuncode.net
  49.  

回复 "php 插入排序 支持升序降序"

这儿你可以回复上面这条便签

captcha