排序之插入排序

算法

最簡(jiǎn)單的排序算法之一是插入排序。插入排序由N-1趟排序組成。對(duì)于p=1到N-1趟,插入排序保證從位置0到位置p上的元素為排序狀態(tài)。插入排序利用了這樣的事實(shí):已知位置0到位置p-1上的元素已經(jīng)處于排過(guò)序的狀態(tài)。

原始數(shù)組 56 23 5 21 65 移動(dòng)的位置
p=1趟后 23 56 5 21 65 1
p=2趟后 5 23 56 21 65 2
p=3趟后 5 21 23 56 65 2
p=4趟后 5 21 23 56 65 0

Java代碼實(shí)現(xiàn)
int[] insertionSort(int[] nums) {
    int i;
    for (int p = 1; p < nums.length; p++) {
        int temp = nums[p];
        for (i = p; i > 0 && temp < nums[i - 1]; i--) {
            nums[i] = nums[i - 1];
        }
        nums[i] = temp;
    }
    return nums;
}

分析

由于嵌套循環(huán)的每一個(gè)花費(fèi)N次迭代,因此插入排序?yàn)镺(N2),而且這個(gè)界是精確的,因?yàn)橐苑葱虻妮斎肟梢赃_(dá)到該界限。
Σi = 2 + 3 + 4 +…+ N=O(N2)

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 概述:排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,828評(píng)論 0 15
  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,303評(píng)論 0 52
  • 今晚本想坐七點(diǎn)的班車回家,到車站后發(fā)現(xiàn)好多車次都晚點(diǎn)。一直等,到了七點(diǎn)二十分才發(fā)現(xiàn)不對(duì)勁。即使是晚點(diǎn),候車室的顯示...
    羯羯lu閱讀 227評(píng)論 0 0
  • 一、90天踐行目標(biāo): 1、英語(yǔ)學(xué)習(xí),每天保證1至1.5小時(shí)學(xué)習(xí)時(shí)間,易習(xí)英語(yǔ)在線學(xué)習(xí); 2、每周四...
    renap閱讀 298評(píng)論 0 0
  • 通化鎮(zhèn)地處萬(wàn)榮縣西北端,距縣城15公里,下轄17個(gè)村,18家衛(wèi)生所,全鎮(zhèn)6770戶,30597人,是隋末大儒...
    簡(jiǎn)單明了閱讀 1,425評(píng)論 0 0

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