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