• 二分查找算法
    1. <?php
    2. function binarySearch ($list, $item)
    3. {
    4.     $low = 0;
    5.     $high = count($list) - 1;
    6.     while ($low < $high) {
    7.         $min = ($low + $high) / 2;
    8.         $val = $list[$min];
    9.         if ($val == $item) {
    10.             return floor($min);
    11.         }
    12.         if ($val < $item) {
    13.             $low = $min + 1;
    14.         } else {
    15.             $high = $min - 1;
    16.         }
    17.     }
    18.     return null;
    19. }
    20. $arr = [2, 4, 7, 8, 18];
    21. $item = 8;
    22. echo binarySearch($arr, $item) . PHP_EOL;
  • 快速排序算法
    1. <?php
    2. function quickSort ($list)
    3. {
    4.     $len = count($list);
    5.     if ($len < 2) {
    6.         return $list;
    7.     }
    8.     $index = $list[0];
    9.     $min = [];
    10.     $max = [];
    11.     for ($i = 1; $i < $len; $i++) {
    12.         if ($index > $list[$i]) {
    13.             $min[] = $list[$i];
    14.         } else {
    15.             $max[] = $list[$i];
    16.         }
    17.     }
    18.     $min = quickSort($min);
    19.     $max = quickSort($max);
    20.     return array_merge($min, [$index], $max);
    21. }
    22. $arr = [3, 8, 6, 1, 2, 9];
    23. print_r(quickSort($arr));
相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!