演算法之排序 插入排序O n 2

2021-10-05 16:50:46 字數 730 閱讀 1663

目錄

1.走讀插入排序**,演算法複雜度o(n**2), 空間複雜度o(1)

2.插入排序特性:

3.以下兩段**

4.優缺點比較:

排序之後的前n個元素是有序的

**一:

int sort_insert(int a, int size)

a[j] = temp;//j=i

printf("temp=%d, moved=%d\n", temp, n);

}

p++;

}

return 0;

}

**二:

int sort_insert2(int a, int size)

return 0;

}

點1:優化空間

**1和**2雖然都能實現插入排序,但效率及優化空間就不一樣了

**1:

是從前往後面比較,即是從0到p-1 ,必須依次比較完

**2:

可以後往前比,即從p-1,p-2比較,直到比較<=temp(待插入的a[p])即可終止,有優化空間

點2:**行數

**1 25行

**2 12行,差一倍

點3:**複雜度:

**1明顯比**2要複雜,容易出錯,**1使用了1個while,2個for,而**2使用了2個for

O N 2 排序演算法分析 選擇排序和插入排序

基本思想 每次遍歷陣列,找到當前陣列中最小的乙個元素,與第乙個元素調換位置。第一次排序 遍歷8個元素,找到當前陣列中最小元素2,與第乙個元素調換,此時,2現在的位置就是其最終的位置 第二次排序 從第二個元素開始遍歷,找到最小的元素4,與第二個元素8對調位置 第三次排序最小的元素時5,與當前位置對換,...

排序演算法 2 插入排序

插入排序 insertion sort 的基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,直到全部記錄插入完成為止。本節介紹兩種插入排序方法 直接插入排序和希爾排序。直接插入排序 直接插入排序基本思想 1 基本思想 假設待排序的記錄存放在陣列r 1.n 中...

排序演算法 2 插入排序

思路是 每次從未排好的序列中選出第乙個元素插入到已排好的序列中。步驟可以大致歸納如下 1.從未排好的序列中拿出首元素,並把它賦值給temp變數 2.從排好的序列中,依次與temp進行比較,如果元素比temp大,則將元素後移 實際上放置temp的元素位置已經空出 3.直到找到乙個元素比temp小,將t...