排序是計算機程式設計中一種重要的操作,它的功能是將乙個資料元素(或記錄)的任意序列,重新排列成乙個按關鍵字有序的序列。
我們之前所熟知的大概是氣泡排序,選擇排序,但相對來說,這兩種方法的效率不是太高,在這篇文章中我簡單的介紹下直接插入排序。
直接插入排序是一種簡單的排序方法,它的基本操作是將乙個記錄插入到已排好的有序表中,從而得到乙個新的.記錄數增一的有序表。
例如:一直待排序的一組記錄的初始排列如下 所示:
r(49), r(38), r(97), r(76), r(13), r(27)……
假設在排序過程中,前4個記錄已按關鍵字遞增的次序重新排列,構成乙個含有4個記錄的有序序列:先要將上面的初始序列的第五個記錄插入到這個已拍好的記錄中,則首先要在一排好序中進行查詢以確定r(76)所應插入的位置,然後插入。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void
dir_sort(sqlist l)
l.r[j+1] = l.r[0];
}
}
for
(i = 1;i <= l.length; i++)
printf
(
"%d "
,l.r[i].data);
printf
(
"\n"
);
}
演算法之直接插入排序
演算法之直接插入排序簡介 直接插入排序 基本操作是將一條記錄插入到已排好的有序表中,從而得到乙個新的 記錄數量增1的有序表。參考 直接插入排序 基本操作是將一條記錄插入到已排好的有序表中,從而得到乙個新的 記錄數量增1的有序表。author zhang public class directinse...
演算法之直接插入排序
直接插入排序 straight insertion sort 的做法是 每次從無序表中取出第乙個元素,把它插入到有序表的合適位置,使有序表仍然有序。第一趟比較前兩個數,然後把第二個數按大小插入到有序表中 第二趟把第三個資料與前兩個數從前向後掃瞄,把第三個數按大小插入到有序表中 依次進行下去,進行了 ...
排序演算法之直接插入排序
直接插入排序 straight insertion sort 的基本思想 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子串行中的適當位置,直到全部記錄插入完成為止。設陣列為a 0 n 1 其中紅色區域為有序區域 1.初始時,a 0 自成1個有序區,無序區為a 1.n 1 a 0 a ...