PHP实现插入排序
插入排序思想:
- 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。
- 它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,
- 找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),
- 因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
1 <?php 2 $arr = [2, 3, 1, 6, 4, 7, 5, 9]; 3 4 var_dump(insertsort($arr)); 5 function insertSort($arr) { 6 $len = count($arr); 7 for ($i = 1; $i < $len; $i++) { 8 // 当前值 9 $key = $arr[$i]; 10 // 当前位置 11 $pos = $i; 12 // 如是当前位置 >0 && 当前值的前一个值 > 当前值 选出最值 13 while ($pos > 0 && $arr[$pos - 1] > $key) { 14 // 当前值 = 前一个值 15 $arr[$pos] = $arr[$pos - 1]; 16 // 当前位置后移 17 $pos = $pos - 1; 18 } 19 // 找到当前值的位置 20 $arr[$pos] = $key; 21 } 22 return $arr; 23 }
------想要问问你敢不敢,像你说过的那样爱我......