表插入排序

2021-07-11 19:38:25 字數 668 閱讀 8503

時間複雜度o(n^2),空間複雜度o(n),這是穩定的排序方法

//表插入排序

#include#includeusing namespace std;

#define size 10

#define max 1000

typedef int elemtype;

typedef structslnode;

typedef structslinklist;

//初始化

void crelist(slinklist *sl)

//輸出

void list(slinklist *sl)

//調整next的指向

void linsertsort(slinklist *sl)

}//調整元素順序,使成順序序列

void adjustlink(slinklist *sl)

p=q;

}}int main()

//輸入:

//9//65 83 100 70 10 32 7 65 9

//輸出:

//1 2 3 4 5 6 7 8 9

//7 9 10 32 65 65 70 83 100

插入排序(二) 表插入排序

上篇文章已經提到直接插入排序中,時間消耗在了元素間的比較次數和移動這兩方面。折半插入排序可以減小比較次數,而表插入排序則可以避免元素移動。但它需要建立資料結構,並且需要額外的空間 省時一般都耗空間,這個在演算法上很常見哦!首先給出表結構,定義如下 define size 100 typedef st...

插入排序之表插入

表插入 時間複雜度o n 2 附加空間o 1 穩定排序 define crt secure no warnings include using namespace std define len 8 有len個元素要排 struct record void linklistinsertsort rec...

鍊錶插入排序

void insertsort list sortascount,node node else p prior next q q next p int sortwithinsetmethod list sortasdata wchar pp p data if isnum pp int i 0 i ...