日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

PHP插入排序

發(fā)布時間:2023/12/4 php 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP插入排序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本意是想研究一下希爾排序的,因為希爾排序和快速排序沒有爭議的是排序最快的兩種算法,但無奈希爾排序是以插入排序為基礎(chǔ)的,所以只得先研究一下插入排序.

?

插入排序基本思想:

?

插入排序(Insertion Sort)的基本思想是:每次將一個待排序的記錄,按其關(guān)鍵字大小插入到前面已經(jīng)排好序的數(shù)據(jù)序列的適當(dāng)位置,直到全部記錄插入完成為止。

假設(shè)待排序的記錄存放在數(shù)組R[0…n-1]中。初始時,R[0]自成1個有序區(qū),無序區(qū)為R[1…n-1]。從i=1起直至i= n-1為止,依次將R[i]插入當(dāng)前的有序區(qū)R[0…i-1]中,生成含n個記錄的有序區(qū)。通常將一個記錄R[i](i=1,2,…,n-1)插入到當(dāng)前的有序區(qū),使得插入后仍保證該區(qū)間里的記錄是按關(guān)鍵字有序的操作稱第i趟插入排序。排序過程的某一中間時刻,R被劃分成兩個子區(qū)間R[0…i-1](已排好序的有序區(qū))和[i…n-1](當(dāng)前未排序的部分,可稱無序區(qū))。插入排序的基本操作是將當(dāng)前無序區(qū)的第1個記錄R[0]插人到有序區(qū)R[0…i-1]中適當(dāng)?shù)奈恢蒙?#xff0c;使 R[0…i]變?yōu)樾碌挠行騾^(qū)。因為這種方法每次使有序區(qū)增加1個記錄,通常稱增量法。
?

?

排序示意圖:

?

?

?

代碼實(shí)現(xiàn) :

?

//插入排序 function insertSort($arr) {$count = count($arr);for ($i = 1; $i < $count; $i++){$temp = $arr[$i];//設(shè)置哨兵for ($j = $i-1; $j >= 0; $j--){if($arr[$j] > $temp){$arr[$j+1] = $arr[$j];$arr[$j] = $temp;}}} return $arr; }$arr = array(70,30,40,10,80,20,90,100,75,60,45); var_dump(insertSort($arr));

?

結(jié)果:

array (size=11)0 => 101 => 202 => 303 => 404 => 455 => 606 => 707 => 758 => 809 => 9010 => 100 (size=11)0 => 101 => 202 => 303 => 404 => 455 => 606 => 707 => 758 => 809 => 9010 => 100

?

?

?

總結(jié)

以上是生活随笔為你收集整理的PHP插入排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。