标签:折半查找 values img log class ima 查找 pac .com
1. 折半查找 -- Binary Insertion Sort
时间复杂度 : O(n^2)
适用条件 : 相对直接插入排序,减少了数值的比较次数。适用于需要排序的数码比较少的情况。
1 <?php 2 namespace Test; 3 4 $a = [0 =>3,4,5,1,11,9,27,27,18,20]; 5 6 function binaryInsertSort(array &$arr) 7 { 8 $guild = 0; // 监视哨 9 $arr = array_values($arr); 10 array_unshift($arr,$guild); 11 $len = count($arr); 12 13 for($i = 2;$i < $len;$i++) 14 { 15 if($arr[$i-1] > $arr[$i]) 16 { 17 $arr[0] = $arr[$i]; 18 $low = 1; 19 $high = $i - 1; 20 21 while($low <= $high) 22 { 23 $mid = ($high + $low)/2; 24 if($arr[$mid] > $arr[0]) 25 { 26 $high = $mid - 1; 27 } 28 else 29 { 30 $low = $mid + 1; 31 } 32 } 33 34 for($j = $i;$j >= $high + 1; --$j) 35 { 36 $arr[$j] = $arr[$j - 1]; 37 } 38 39 $arr[$high + 1] = $arr[0]; 40 } 41 } 42 array_shift($arr); 43 } 44 45 binaryInsertSort($a); 46 echo implode(‘,‘,$a);
输出:
标签:折半查找 values img log class ima 查找 pac .com
原文地址:http://www.cnblogs.com/jingjingdidunhe/p/6481694.html