(C )資料結構排序 插入排序

2021-08-20 21:07:37 字數 793 閱讀 6730

插入排序基本思想:乙個陣列擁有n個資料,從第二個資料a[1]開始,與前面的資料a[0]比較,若a[1]需要進行(n-1)趟比較,第一趟進行一次比較,第n-1趟進行(n-1)次比較。

比較次數:(1+n-1)*(n-1)/2=n*(n-1)/2。需要乙個輔助空間,用於交換資料。

平均情況的時間複雜度          最好情況的時間複雜度               最壞情況的時間複雜度         空間複雜度

o(n^2)                                 o(n^2)                                        o(n^2)                      o(1)

**實現1:

#ifndef _insertsort_h

#define _insertsort_h

#includeusing namespace std;

templatevoid insertsort(type *a,int n)

}

測試**:

#include#include"insertsort.h"

using namespace std;

int main()

; for(int i=0;i<10;i++)

cout

for(int i=0;i<10;i++)

cout

}

資料結構 插入排序

演算法中經常會用到各種各樣的演算法,比較簡答的思想就是氣泡排序,一般剛開始程式設計時遇到排序問題時,會很容易想到冒泡排,氣泡排序是通過兩輛比較數值,從而將數字移動到開始或者末尾的位置,反覆重複這個過程從而就達到了排序的目的。其時間複雜度大概是 n2 還有一種比較常用的插入排序,其思想與氣泡排序比較類...

資料結構 插入排序

一 直接插入排序 1 直接插入排序的演算法思想 r i 的鍵值ki與r 0 r i 1 的鍵值依次比較 從後往前比 找到r i 應插入的位置,並把從該位置開始的記錄後移乙個位置,把r i 插入到找到的插入位置,完成一趟直接排序 重複選r i 1 r n 完成上述操作,直到排序完畢 注 為什麼要從後往...

資料結構 插入排序

插入排序的基本思想是 每步將乙個待排序的物件,按其關鍵字大小,插入到前面已經排好序的一組物件的適當位置上,直到物件全部插入為止。簡言之,邊插入邊排序,保證子串行中隨時都是排好序的。新元素插入到 在已形成的有序表中線性查詢,並在適當位置插入,把原來位置上的元素向後順移。關鍵字序列t 13,6,3,31...