数组排序算法:
插入排序:将一个数据插入已经排好序的的有序数组,得到一个新的数组
算法:
- 认定第一个数组元素已经排好序
- 取出第二个元素,作为插入数据
- 与已经排好序的数组元素的最右侧开始比较
- 如果数组后面的元素小于前面的元素,则前面的元素向后移,再填充元素
- 重复4操作
- 重复,直到所有数组元素都插入到对的位置 如代码:
选择排序:每一次从待选择的数据元素中选出最小(大)的数,存储在序列的起始位置,直到排完
如代码:
快速排序:通过排序将数据分为两部分,且其中一部分比另一部分的元素的最小值还要小,再重复分割(类似于二分法) array_merge()函数作用:将几个数组合成一个数组
归序排序:采用分治法,将已有序的子序列合并,得到有序的数列(先使每个子序列有序,再使子序列段间有序)
二路归并:将两个有序表合成一个有序表
例,如图:
例,归序排序代码:
注意 “$arr1=guibing($arr1)”和“$arr2=guibing($arr2)”的重要性
如,在没有“$arr1=guibing($arr1)”和“$arr2=guibing($arr2)”的情况下: