PHP 排序算法(三) 插入排序

    技术2023-05-25  95

    插入排序(以升序为例)

    核心思想:将数组看成两个数组,左边的是有序数组,右边的是无序数组。将右边的元素,一个个插入到有序数组中。

    首先要找一个基准,所以就拿第一个元素 $arr[0]来作为有序数组的第一个元素

    function insertSort($arr) { //获取数组单元个数 $count = count($arr); //外层循环用于从未排序区域中取出待排序元素 for ($i=1; $i < $count; $i++) { //获取当前即将要插入的元素值 $temp = $arr[$i]; //内层循环用于从已排序区域寻找待排序元素的插入位置 for ($j=$i-1; $j >= 0; $j--) { //如果$arr[$i]比已排序区域的$arr[$j]小,就后移$arr[$j] if ($temp < $arr[$j]) { $arr[$j+1] = $arr[$j]; $arr[$j] = $temp; } else { //如果$arr[$i]不小于$arr[$j],则对已排序区无需再排序 break; } } } return $arr; } $arr = array(6,2,4,3,5,7,9,1,10); print_r(insertSort($arr));

     

    Processed: 0.011, SQL: 9