還有這種操作?C語言插入排序算法几莽,一點(diǎn)就透

插入排序算法是所有排序方法中最簡單的一種算法迅办,其主要的實(shí)現(xiàn)思想是將數(shù)據(jù)按照一定的順序一個一個的插入到有序的表中,最終得到的序列就是已經(jīng)排序好的數(shù)據(jù)章蚣。

更多精彩關(guān)注群文件:569268376

直接插入排序是插入排序算法中的一種站欺,采用的方法是:在添加新的記錄時,使用順序查找的方式找到其要插入的位置纤垂,然后將新記錄插入矾策。

很多初學(xué)者所說的插入排序,實(shí)際上指的就是直接插入排序算法峭沦,插入排序算法還包括折半插入排序贾虽、2-路插入排序,表插入排序和希爾排序等吼鱼,后序文章都會一一講到蓬豁。

例如采用直接插入排序算法將無序表{3,1,7,5,2,4,9,6}進(jìn)行升序排序的過程為:

首先考慮記錄 3 ,由于插入排序剛開始菇肃,有序表中沒有任何記錄地粪,所以 3 可以直接添加到有序表中,則有序表和無序表可以如圖1 所示:

?

向有序表中插入記錄 1 時琐谤,同有序表中記錄 3 進(jìn)行比較蟆技,1<3,所以插入到記錄 3 的側(cè)斗忌,如圖 2 所示:

?

向有序表插入記錄 7 時质礼,同有序表中記錄 3 進(jìn)行比較,3<7织阳,所以插入到記錄 3 的右側(cè)眶蕉,如圖 3 所示:

?

向有序表中插入記錄 5 時,同有序表中記錄 7 進(jìn)行比較陈哑,5<7妻坝,同時 5>3伸眶,所以插入到 3 和 7 中間,如圖 4 所示:

?

向有序表插入記錄 2 時刽宪,同有序表中記錄 7進(jìn)行比較厘贼,2<7,再同 5圣拄,3嘴秸,1分別進(jìn)行比較,最終確定 2 位于 1 和 3 中間庇谆,如圖 5 所示:

?

照此規(guī)律岳掐,依次將無序表中的記錄 4,9 和 6插入到有序表中饭耳,如圖 6 所示:

?

直接插入排序的具體代碼實(shí)現(xiàn)為:

#include <stdio.h>

//自定義的輸出函數(shù)

void print(int a[], int n ,int i){

printf("%d:",i);

for(int j=0; j<8; j++){

printf("%d",a[j]);

}

printf("

");

}

//直接插入排序函數(shù)

void InsertSort(int a[], int n)

{

for(int i= 1; i<n; i++){

if(a[i] < a[i-1]){//若第 i 個元素大于 i-1 元素則直接插入串述;反之,需要找到適當(dāng)?shù)牟迦胛恢煤笤诓迦搿?/p>

int j= i-1;

int x = a[i];

while(j>-1 && x < a[j]){ //采用順序查找方式找到插入的位置寞肖,在查找的同時纲酗,將數(shù)組中的元素進(jìn)行后移操作,給插入元素騰出空間

a[j+1] = a[j];

j--;

}

a[j+1] = x; //插入到正確位置

}

print(a,n,i);//打印每次排序后的結(jié)果

}

}

int main(){

int a[8] = {3,1,7,5,2,4,9,6};

InsertSort(a,8);

return 0;

}

運(yùn)行結(jié)果為:

1:13752496

2:13752496

3:13572496

4:12357496

5:12345796

6:12345796

7:12345679

直接插入排序算法本身比較簡潔新蟆,容易實(shí)現(xiàn)觅赊,該算法的時間復(fù)雜度為O(n2)。插入排序的其它 4 種排序方法琼稻,點(diǎn)擊獲取吮螺,喜歡的可以關(guān)注,點(diǎn)贊帕翻,轉(zhuǎn)發(fā)喲鸠补。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市熊咽,隨后出現(xiàn)的幾起案子莫鸭,更是在濱河造成了極大的恐慌闹丐,老刑警劉巖横殴,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異卿拴,居然都是意外死亡衫仑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門堕花,熙熙樓的掌柜王于貴愁眉苦臉地迎上來文狱,“玉大人,你說我怎么就攤上這事缘挽∶槌纾” “怎么了呻粹?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長苏研。 經(jīng)常有香客問我等浊,道長,這世上最難降的妖魔是什么摹蘑? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任筹燕,我火速辦了婚禮,結(jié)果婚禮上衅鹿,老公的妹妹穿的比我還像新娘撒踪。我一直安慰自己,他們只是感情好大渤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布制妄。 她就那樣靜靜地躺著,像睡著了一般泵三。 火紅的嫁衣襯著肌膚如雪忍捡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天切黔,我揣著相機(jī)與錄音砸脊,去河邊找鬼。 笑死纬霞,一個胖子當(dāng)著我的面吹牛凌埂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播诗芜,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瞳抓,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了伏恐?” 一聲冷哼從身側(cè)響起孩哑,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎翠桦,沒想到半個月后横蜒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡销凑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年丛晌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斗幼。...
    茶點(diǎn)故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡澎蛛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蜕窿,到底是詐尸還是另有隱情谋逻,我是刑警寧澤呆馁,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站毁兆,受9級特大地震影響智哀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜荧恍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一瓷叫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧送巡,春花似錦摹菠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至摘投,卻和暖如春煮寡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背犀呼。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工幸撕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人外臂。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓坐儿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親宋光。 傳聞我的和親對象是個殘疾皇子貌矿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序罪佳,而外部排序是因排序的數(shù)據(jù)很大逛漫,一次不能容納全部...
    蟻前閱讀 5,186評論 0 52
  • 總結(jié)一下常見的排序算法。 排序分內(nèi)排序和外排序赘艳。內(nèi)排序:指在排序期間數(shù)據(jù)對象全部存放在內(nèi)存的排序酌毡。外排序:指在排序...
    jiangliang閱讀 1,346評論 0 1
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個記錄插入到已排序好...
    依依玖玥閱讀 1,258評論 0 2
  • 回溯算法 回溯法:也稱為試探法,它并不考慮問題規(guī)模的大小第练,而是從問題的最明顯的最小規(guī)模開始逐步求解出可能的答案阔馋,并...
    fredal閱讀 13,660評論 0 89
  • 這是知乎上的一道題目玛荞,我一直關(guān)注這個題目娇掏,也看了其他人的答案,但我自己從來沒有回答過這個問題勋眯。因?yàn)槲铱傆X得還不到時...
    謝小迪閱讀 577評論 0 3