插入排序

概述

玩過(guò)撲克牌的同學(xué)都知道,把拿到的牌,和手上已有的牌比較,插入到合適的位置排好序,后面的牌位置就自動(dòng)后移一位。這個(gè)就是插入排序。

java代碼

public class InsertSort {
    public static void main(String[] args) {
        int[] array = {32,5,66,48,99,21,55};
        System.out.print("InsertSort\n");
        printArray(array);
        System.out.print("start:\n");
        insertSort(array);
        System.out.print("end:\n");
    }

    static void insertSort(int[] arr){
        for(int i=1;i<arr.length;i++){
            int temp = arr[i];
            for(int j=i-1;j>=0;j--){
                if(temp<arr[j]){
                    arr[j+1]=arr[j];//后移
                    arr[j] = temp;
                }else{
                    arr[j+1] = temp;
                    break;
                }
            }
            printArray(arr);
        }
    }


    static void printArray(int[] arr){
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }
        System.out.print("\n");
    }
}

輸出

InsertSort
32 5 66 48 99 21 55 
start:
5 32 66 48 99 21 55 
5 32 66 48 99 21 55 
5 32 48 66 99 21 55 
5 32 48 66 99 21 55 
5 21 32 48 66 99 55 
5 21 32 48 55 66 99 
end:

時(shí)間復(fù)雜度

  1. 最好的情況就是已經(jīng)排好序的數(shù)組,時(shí)間復(fù)雜度為O(n);
  2. 最壞的情況就是逆序的,需要移動(dòng)1+2+3+...+n-1=n(n-1)/2,時(shí)間復(fù)雜度為O(n2);
  3. 平均時(shí)間復(fù)雜度為O(n2) 。

空間復(fù)雜度

沒(méi)有分配額外空間,空間復(fù)雜度為O(1)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 插入排序原理 通過(guò)構(gòu)建有序序列,對(duì)于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到相應(yīng)的位置并插入。 插入排序非常類...
    Leon_hy閱讀 305評(píng)論 0 1
  • 插入排序 直接插入排序的基本思想:每次將一個(gè)待排序的記錄,按其keyword的大小插入到前面已經(jīng)排好的子序列中的適...
    Sunrain16閱讀 1,281評(píng)論 0 3
  • 這本書總體來(lái)說(shuō)很值得看,前面部分講的相對(duì)實(shí)用一些,后面部分相對(duì)理論些。干活觀點(diǎn)是:每個(gè)人的付出是分為四種類型的。一...
    Clair_one閱讀 603評(píng)論 0 50
  • 苦逼的上班族難得有可以一起休息的機(jī)會(huì),一大早老公就起來(lái)去菜市場(chǎng)挑選了新鮮的食材,精心準(zhǔn)備午餐,我則負(fù)責(zé)打打下手順便...
    一只流浪的貓咪閱讀 180評(píng)論 0 0
  • 最近新找了一份工作,這就讓我以前家里蹲想幾點(diǎn)起來(lái)就幾點(diǎn)起來(lái),也不用出門的生活結(jié)束了……又開始了每天早起,出門...
    柚子多多多閱讀 294評(píng)論 0 0

友情鏈接更多精彩內(nèi)容