直接插入排序算法

直接插入排序思想

主要思想就是從第二個元素開始,依次和前面的元素比較,如果比前面的元素小則將元素依次向后移位,給需要插入的元素騰出空間主胧。與選擇排序類似的是當前索引左邊的所有元素都是有序的,但是它們最終的位置不確定习勤,因為后面可能還會出現(xiàn)更小或更大的元素踪栋。所以為了給更小或更大的元素騰出空間,它們隨時都可能被移動图毕。如果到達了數(shù)組的右端時夷都,數(shù)組順序就完成了。

算法導論例子

排序方式像我們打牌時排序手中的撲克牌予颤,開始時囤官,我們手中的撲克牌為空厢破,我們從牌堆中拿到第一張牌到手中,然后在不停的抓牌中治拿,從右到左的比較手中每一張牌,左手中的牌總是排序好的笆焰,所以從第二張牌開始左手中的牌就是有序的劫谅,一直到抓完牌堆中的牌。


2.png

直接插入排序算法的特點

插入排序所需的時間取決于輸入中元素的初始順序嚷掠。如果初始順序基本有序捏检,那么排序就會快很多。然后在鍵不重復的前提下不皆,最壞情況(就是需要正序排序贯城,結(jié)果數(shù)組里面的元素都是逆序的):(N-1)+(N-2)+...............+2+1=N^2/2次比較和交換。最好情況:就是直接比較一遍霹娄,無需交換能犯。就是比較N-1次,交換0次犬耻。

直接插入排序算法的實現(xiàn)

   public static void printArr(int[] objArr) {  
        for (int i : objArr) {  
            System.out.println(i);  
        }  
    }  
      
    public static int[] insertSort(int[] arr) {  
         for (int i = 1 ; i < arr.length ; i++) {  
             int insertValue = arr[i];  
             int j = i - 1;  
             while (j>=0) {  
                 if(arr[j] > insertValue) {  
                     arr[j+1] = arr[j];  
                 } else {  
                     break;  
                 }  
                 j--;  
             }  
             arr[j+1] = insertValue;  
         }  
         return arr;  
    }  
      
    public static void main(String[] args) {  
        int[] arr ={5,2,3,6,4,5};  
        insertSort(arr);  
        printArr(arr);  
    }  

運行結(jié)果

2.png

直接插入排序:

最大時間O(n^2)
最小時間O(n)
平均時間O(n)
輔助空間O(1)
穩(wěn)定性:穩(wěn)定

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末踩晶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子枕磁,更是在濱河造成了極大的恐慌渡蜻,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件计济,死亡現(xiàn)場離奇詭異茸苇,居然都是意外死亡,警方通過查閱死者的電腦和手機沦寂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門学密,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人凑队,你說我怎么就攤上這事则果。” “怎么了漩氨?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵西壮,是天一觀的道長。 經(jīng)常有香客問我叫惊,道長款青,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任霍狰,我火速辦了婚禮抡草,結(jié)果婚禮上饰及,老公的妹妹穿的比我還像新娘。我一直安慰自己康震,他們只是感情好燎含,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著腿短,像睡著了一般屏箍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上橘忱,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天赴魁,我揣著相機與錄音,去河邊找鬼钝诚。 笑死颖御,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的凝颇。 我是一名探鬼主播潘拱,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼祈噪!你這毒婦竟也來了泽铛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤辑鲤,失蹤者是張志新(化名)和其女友劉穎盔腔,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體月褥,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡弛随,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了宁赤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舀透。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖决左,靈堂內(nèi)的尸體忽然破棺而出愕够,到底是詐尸還是另有隱情,我是刑警寧澤佛猛,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布惑芭,位于F島的核電站,受9級特大地震影響继找,放射性物質(zhì)發(fā)生泄漏遂跟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望幻锁。 院中可真熱鬧凯亮,春花似錦、人聲如沸哄尔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽岭接。三九已至置谦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間亿傅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工瘟栖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留葵擎,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓半哟,卻偏偏與公主長得像酬滤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子寓涨,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

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

  • 淵萌閱讀 143評論 0 0
  • 希望這一生安安穩(wěn)穩(wěn)盯串,不慌不忙,就像火車一樣戒良,向著預定的軌道体捏,載著一路歡聲笑語,去該去的地方糯崎。 2015年的6月几缭,和...
    瓷米閱讀 203評論 2 0
  • 最近又是如獲至寶啊沃呢!之前在知乎上看見有人推薦閱讀牛津書蟲系列的英語讀物年栓,后來居然在圖書館發(fā)現(xiàn)了一系列的書蟲!...
    Spencer手記閱讀 14,986評論 3 7
  • 我有一間屋子薄霜,四面都是墻壁某抓, 應該有一盞燈,是夜就會亮起惰瓜。 如果不再亮起否副,該有一扇窗子, 外面就是天空鸵熟,空中滿是星...
    落梅君閱讀 256評論 0 0