软件公司网站模板下载,世界杯竞猜网站开发,如何做好一个营销方案,微软的网站开发软件本意是想研究一下希尔排序的,因为希尔排序和快速排序没有争议的是排序最快的两种算法,但无奈希尔排序是以插入排序为基础的,所以只得先研究一下插入排序. 插入排序基本思想: 插入排序(Insertion Sort)的基本思想是#xff1a;每次将一个待排序的记录#xff0c;按其关键字大小…本意是想研究一下希尔排序的,因为希尔排序和快速排序没有争议的是排序最快的两种算法,但无奈希尔排序是以插入排序为基础的,所以只得先研究一下插入排序. 插入排序基本思想: 插入排序(Insertion Sort)的基本思想是每次将一个待排序的记录按其关键字大小插入到前面已经排好序的数据序列的适当位置直到全部记录插入完成为止。
假设待排序的记录存放在数组R[0…n-1]中。初始时R[0]自成1个有序区无序区为R[1…n-1]。从i1起直至i n-1为止依次将R[i]插入当前的有序区R[0…i-1]中生成含n个记录的有序区。通常将一个记录R[i](i12…n-1)插入到当前的有序区使得插入后仍保证该区间里的记录是按关键字有序的操作称第i趟插入排序。排序过程的某一中间时刻R被划分成两个子区间R[0…i-1]已排好序的有序区和[i…n-1]当前未排序的部分可称无序区。插入排序的基本操作是将当前无序区的第1个记录R[0]插人到有序区R[0…i-1]中适当的位置上使 R[0…i]变为新的有序区。因为这种方法每次使有序区增加1个记录通常称增量法。 排序示意图 代码实现 : //插入排序
function insertSort($arr)
{$count count($arr);for ($i 1; $i $count; $i){$temp $arr[$i];//设置哨兵for ($j $i-1; $j 0; $j--){if($arr[$j] $temp){$arr[$j1] $arr[$j];$arr[$j] $temp;}}} return $arr;
}$arr array(70,30,40,10,80,20,90,100,75,60,45);
var_dump(insertSort($arr));结果:
array (size11)0 101 202 303 404 455 606 707 758 809 9010 100 (size11)0 101 202 303 404 455 606 707 758 809 9010 100