🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
> 直接插入排序的基本思想是 :将一个记录插入到已排好序的序列中,从而得到一个新的有序序列(将序列的第一个数据看成是一个有序的子序列,然后从第二个记录逐个向该有序的子序列进行有序的插入,直至整个序列有序)。 > 即每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。 ``` $arr = [9,1,5,8,3,7,4,2,20]; $result = $this->sort($arr); public function insertSort($arr) { $res = [];//要插入的数组 $res[0] = $arr[0]; //将要排序的第一个值存进数组 for ($i = 1; $i < count($arr); $i++) { //循环 1,5,8,3,7,4,6,20 for ($j = count($res); $j > 0; $j--) { //循环20,6,4,7,3,8,5,1 if ($res[$j - 1] > $arr[$i]) { // 倒序排序(升序则改成<) $res[$j] = $arr[$i]; break; } else { $tmp = $res[$j - 1]; $res[$j - 1] = $arr[$i]; $res[$j] = $tmp;//向后移位 } } } return $res; } ```