常用排序演算法 插入排序解讀

2021-07-15 18:29:54 字數 495 閱讀 6275

常用的排序演算法有氣泡排序,快速排序,選擇排序,插入排序等,從效率上來講氣泡排序和選擇排序一般,10萬隨機數排序經測試,快速排序和插入排序毫秒級別,且效率比冒泡和選擇排序快百倍。這裡重要分析下如何寫出高效的插入排序:

插入排序的思路(從小到大):

1、認為n=1時陣列是已排序的

2、從i=2開始(i=2、3、4......n-1,n),識i3、j=i,與j-1值比較,臨時儲存tmp = j值

條件1:如果j值》=j-1值或者j>0,則表明i<=n的值以正確排序,不許操作,i變下乙個數,重複2步驟(此步驟是效率的關鍵)

條件2:如果j值程式:

public static void insertsort(int arr);

int tmp,j;

for(int i = 1;itmp = arr[i];

for(j=i;j>0 && tmparr[j] = arr[j-1];

}arr[j] = tmp;

}    }

常用排序演算法 插入排序

直接插入排序 假設從小到大 基本思想 1 從第2個數開始,與第1個數比較,若小於第乙個數則交換,這樣前兩個數已排序好 2 第三個數與第二個數比較,選擇交換或不交換,然後第二個數再與第乙個比較,選擇交換或不交換 3 以此類推,把當前數插入到之前已排序的序列中,直到處理完最後乙個數為止 時間複雜度 o ...

常用排序演算法 插入排序

插入排序 插入排序是假設數列已經按順序排列,反覆將每乙個元素插入,如果待插入資料比所有元素大,就直接放到最後 如果比前置元素小,前置元素後移,直至遇到比待插入小的位置。初始狀態,假設數列只有乙個元素33 第一步將6插入 6比33小 33後移,6插入到33前面 第二步將 5插入 5 比33小 33後移...

常用排序演算法 1 插入排序

插入演算法 基本插入 把要排序的數列分層兩部分 第一部分包含了數列除最後乙個元素外的所有元素,而第二部分僅包含數列的最後乙個元素,再把這個最後元素插入到此刻已經是有序的第一部分裡的正確位置,保證插入後數列的有序性。時間複雜度最好為o n 最壞o n 2 平均o n 2 空間複雜度o 1 插入排序包括...