直接插入排序,就像是桌子上一疊正面向下的撲克從小到大地依次拿到自己的手上。
成都創(chuàng)新互聯(lián)公司長(zhǎng)期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為曲江企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、網(wǎng)站制作,曲江網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。1,顯然拿到的第一張撲克(假如是3)是不用比較的,而且可以認(rèn)為,它是有序的。
2,拿到第二張牌(假如是2)的時(shí)候,我們只要和第一張比較,放到合適的位置(現(xiàn)在是2,3),保持有序。
3,接著拿到第三張牌,我們只要和原來(lái)有序的序列(2,3)比較組成一個(gè)元素加一個(gè)的新有序序列即可。
(我們只要從右到左用在原序列一個(gè)個(gè)比較即可,如是5,只比較一次就可以決定放在3前,如果是1,那就比較兩次)
詳解如下圖:
要點(diǎn):
1,大循環(huán)從第二個(gè)元素開始,倒著比較
2,小循環(huán)的條件有兩種情況
3,i在一趟比較的最后要加1,向后一格置入新元素
特征:
1,插入排序是原址排序,最多用了一個(gè)輔助空間來(lái)放臨時(shí)元素
2,新元素之前的部分是本問(wèn)題的子問(wèn)題的求解結(jié)果
3,完全逆序的比較性能最差(內(nèi)層循環(huán)的次數(shù)最多)
for(j=1 ; j< arr.length ; j++)
{
key = arr[ j] ;//取出當(dāng)前要插入比較的新元素
i = j-1;//小循環(huán)指示器
while( i> -1 && arr[i]>key) {//小循環(huán)負(fù)責(zé)在已經(jīng)有序的部分中找個(gè)合適的位置
arr[i+1] = arr [i] ;//有序部分比新來(lái)元素較大者后移
--i;//繼續(xù)向前尋找位置
}
i=i+1;
arr[i] = key;//無(wú)論是否進(jìn)入了小循環(huán),把key放在i+1的位置總是對(duì)的
//沒有進(jìn)入小循環(huán)的i和j是同一個(gè)位置
}
本文已完結(jié);
by mengshengneng@163.com
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。