摘要:上還有個空檔,這時候把補上就行了外層次循環(huán)待插入的數(shù)外層待插入的數(shù)為內(nèi)層次循環(huán)要插入的已經(jīng)排序好的小所以要騰出一個空來給這時候索引的值為要往后靠,此時外層次循環(huán)結(jié)束注意此處兩值如果已經(jīng)經(jīng)歷了內(nèi)層循環(huán),那么就此時完成把的值賦予
1.外層循環(huán)是從數(shù)組中選出一個arr[i]將要插入到有序數(shù)組的數(shù) 2.內(nèi)層循環(huán)是遍歷已經(jīng)排序好的數(shù)組, 將arr[i](也就是temp)依次與有序數(shù)組做對比, 如果發(fā)現(xiàn)有序數(shù)組其中一個比準(zhǔn)備插進來的arr[i]大, 那么誰比這個arr[i]大,誰就出去,把位置騰出去, 當(dāng)然比arr[i]大的這個數(shù)也不能扔,就給他放在已經(jīng)排號序數(shù)組中 且相對于他的下一個索引就好了。 3.上2還有個空檔,這時候把temp補上就行了
= 0 && $temp < $arr[$j]; $j--) { echo "====>內(nèi)層{$j}=" . $j . "次循環(huán)" . " "; echo "要插入的$temp" . "=$temp " . "VS " . "已經(jīng)排序好的$arr[$j]=" . "$arr[$j]" . "小 "; $arr[$j + 1] = $arr[$j]; echo "所以要騰出一個空來給temp,這時候索引$j的值為".$arr[$j]."要往后靠,此時$j=" . $j, " "; } echo "外層{$i}=" . $i . "次循環(huán)結(jié)束"; // var_dump($temp,$arr[$i]);注意此處兩值如果已經(jīng)經(jīng)歷了內(nèi)層循環(huán),那么就!== $arr[$j + 1] = $temp; echo " 此時完成$j=" . $j . "把temp的值" . "$temp" . "賦予$j+1" . " "; echo "=====", " "; } return $arr; } var_dump(insertSort($arr));
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22017.html
摘要:希爾排序希爾排序這個名字,來源于它的發(fā)明者希爾,也稱作縮小增量排序,是插入排序的一種更高效的改進版本。我們可以發(fā)現(xiàn),當(dāng)區(qū)間為的時候,它使用的排序方式就是插入排序。 冒泡排序 冒泡排序無疑是最為出名的排序算法之一,從序列的一端開始往另一端冒泡(你可以從左往右冒泡,也可以從右往左冒泡,看心情),依次比較相鄰的兩個數(shù)的大?。ǖ降资潜却筮€是比小也看你心情)。 showImg(https://s...
摘要:而在證明算法是正確的基礎(chǔ)上,第二步就是分析算法的時間復(fù)雜度。算法的時間復(fù)雜度反映了程序執(zhí)行時間隨輸入規(guī)模增長而增長的量級,在很大程度上能很好反映出算法的優(yōu)劣與否。 showImg(https://segmentfault.com/img/remote/1460000016451712?w=800&h=341); 前言 雖然工作中,你覺得自己并沒有涉及到算法這方面的東西,但是算法是程序的...
摘要:總結(jié)比較排序算法都是空間復(fù)雜度為的原地排序算法,其中冒泡排序和插入排序兩兩比較不會交換相等的記錄,所以這兩種排序都是穩(wěn)定排序,而選擇排序只是記錄最小值最后進行交換,所以會破壞相對順序,選擇排序不是穩(wěn)定算法。 冒泡排序 兩兩比較相鄰記錄的關(guān)鍵字,如果反序則交換,大的數(shù)字往下沉,一直到最大的出現(xiàn)在數(shù)組最后 function swap(&$x, &$y) { $temp = $x; ...
摘要:前言昨天跟在前端好友聊天時,她提到了一個問題數(shù)組去重你會怎么寫。利用將結(jié)構(gòu)轉(zhuǎn)換成數(shù)組拓展運算符內(nèi)部使用循環(huán)參考淺談數(shù)組去重數(shù)組去重小結(jié)標(biāo)準(zhǔn)入門第版 前言 昨天跟在前端好友聊天時,她提到了一個問題:數(shù)組去重你會怎么寫?。想了想,其實有好幾種方法,決定在這篇筆記中做一些記錄。 思路一: 雙層循環(huán),外層循環(huán)元素,內(nèi)層循環(huán)時比較值 如果有相同的值則跳過,不相同則push進數(shù)組 Array....
摘要:直接插入排序是由兩層嵌套循環(huán)組成的。插入排序的基本方法是每步將一個待排序的記錄按其關(guān)鍵字的大小插到前面已經(jīng)排序的序列中的適當(dāng)位置,直到全部記錄插入完畢為止。算法實現(xiàn)直接插入排序記錄后移插入到正確的位置運行結(jié)果 算法引入: 在這里我們依然使用《大話數(shù)據(jù)結(jié)構(gòu)》里面的一個例子: 撲克牌是我們幾乎每個人都玩過的游戲。平時我們開始的時候一般都是一個人發(fā)牌,其他人都是一邊摸牌,一邊理牌,假如你摸上...
閱讀 3209·2021-11-25 09:43
閱讀 3213·2021-11-23 09:51
閱讀 3526·2019-08-30 13:08
閱讀 1579·2019-08-29 12:48
閱讀 3602·2019-08-29 12:26
閱讀 406·2019-08-28 18:16
閱讀 2572·2019-08-26 13:45
閱讀 2438·2019-08-26 12:15