PHP插入排序的實(shí)現(xiàn)

發(fā)布時(shí)間:2024-04-17
插入排序基本思路:將數(shù)組分為兩個(gè)區(qū)(已排序區(qū)和未排序區(qū)),假定數(shù)組的第一個(gè)元素處于已排序區(qū), 第一個(gè)元素之后的所有元素都處于未排序部分。排序時(shí)用到雙層循環(huán),外層循環(huán)用于從未排序部分中取出待排序元素,并逐步縮小未排序部分,內(nèi)層循環(huán)用于從已排序部分尋找插入位置(即不斷地從已排序部分尋找比待排序元素大的元素), 然后將較大的已排序區(qū)的元素后移,后移的最終結(jié)果是已排序區(qū)元素的最后一個(gè)元素占據(jù)待排序元素原來的位置,而已排序區(qū)中間空出一個(gè)位置),最后將待排序元素插入元素后移之后留下的空位。
//插入排序 function insert_sort($arr) { //獲取數(shù)組單元個(gè)數(shù) $count = count($arr); //外層循環(huán)用于從未排序區(qū)域中取出待排序元素 for ($i=1; $i < $count; $i++) { //獲取當(dāng)前需要插入已排序區(qū)域的元素值 $temp = $arr[$i]; //內(nèi)層循環(huán)用于從已排序區(qū)域?qū)ふ掖判蛟氐牟迦胛恢?for ($j=$i-1; $j >= 0; $j--) { //如果$arr[$i]比已排序區(qū)域的$arr[$j]小,就后移$arr[$j] if ($temp < $arr[$j]) { $arr[$j+1] = $arr[$j]; $arr[$j] = $temp; } else { //如果$arr[$i]不小于$arr[$j],則對(duì)已排序區(qū)無需再排序 break; } } } return $arr; } $arr = array(6, 19, 26, 62, 88, 99, 18, 16, 1); var_dump(insert_sort($arr)); 測(cè)試結(jié)果:
上一個(gè):檢測(cè)導(dǎo)電材料上是否有劃痕和裂紋-日本micro-fix無損探傷儀
下一個(gè):如何科學(xué)繁殖雞冠花

全自動(dòng)負(fù)壓密封設(shè)備的特點(diǎn)
店鋪限制無法支付怎么解決(店鋪限制無法支付怎么解除)
鍋巴機(jī)設(shè)備生產(chǎn)線的主要組成
實(shí)施回收二手硫化堿廢水蒸發(fā)結(jié)晶成套設(shè)備
費(fèi)斯托FESTO電磁閥的工作能力
怎么清理手機(jī)預(yù)裝軟件,手機(jī)自帶軟件怎么刪
自吸式無堵塞排污泵8大特點(diǎn)
智能霉菌培養(yǎng)箱(智能霉菌培養(yǎng)箱介紹)
uv是啥意思(uv是干什么的)
快速掌握電火花穿孔機(jī)的使用要點(diǎn)
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos