資料結構 直接插入排序

2022-05-25 04:21:13 字數 1164 閱讀 6821

例如:待排序陣列為:7   2   4   1   3   2   

第一次排序:2   7   4   1   3   2    

第二次排序:2   4   7   1   3   2

第三次排序:1   2   4   7   3   2

第四次排序:1   2   3   4   7   2

第五次排序:1   2   2   3   4   7

程式實現**如下:

1 #include 2 #include 3 #include 4

#define maxsize 20

5 typedef int

keytype;

6 typedef char

infotype;78

//結構體定義

9 typedef struct

redtype;

13 typedef struct

sqlist;

1718

//函式定義

19void print(sqlist *l);

20void init(sqlist *l);

21void insertsort(sqlist *l);

2223

//初始化,產生隨機數組

24void init(sqlist *l)

32 l->length =n;

33 printf("

隨機產生的待排陣列為:");

34print(l);35}

3637

//輸出陣列元素

38void print(sqlist *l)

43 printf("\n"

);44}45

46//

進行直接插入排序

47void insertsort(sqlist *l)

56/*

for(j=i-1; l->r[0].keyr[j].key; --j)

*/59

//迴圈後j=0;

60 l->r[j+1] = l->r[0];//

插入正確的位置61}

62}63}

6465

//主函式

66int

main()

67

資料結構 直接插入排序

直接插入排序 include include typedef struct int elem int length sqlist void initsqlist sqlist l int i printf 請輸入元素個數 scanf d l length l elem int malloc size...

資料結構 直接插入排序

直接插入排序 將待插入子串行元素逐步插入到有序序列的執行過程。設有一待排序序列s 其中是有序的,是無序的,要把後面無需的元素,乙個乙個的插入到前面有序的集合中去。如下面的序列可以分為兩個子串行 和 初始序列 75 88 68 92 88 62 77 96 80 72 第一次排序 75 88 68 9...

資料結構 直接插入排序

將乙個記錄插入到已排好序的序列中,從而得到乙個新的有序序列 將序列的第乙個資料看成是乙個有序的子串行,然後從第二個記錄逐個向該有序的子串行進行有序的插入,直至整個序列有序 可以選擇不同的方法在已經排好序資料表中尋找插入位置。根據查詢方法不同,有多種插入排序方法,下面要介紹的是直接插入排序。設待排序的...