插入排序:
顺序提取,正确插入。类似于“抓扑克牌”,右手抓牌,左手排序。
插排对于部分有序的数组十分高效,也很适合小规模的数组。
def insert_Sort(alist):
for j in range(1, len(alist)):
key = alist[j]
i = j - 1
while i>=0 and alist[i]>key:
alist[i+1] = alist[i] #如果sortedSequence的最后一位的值大于key的值,则key与倒数第二位比较。
i = i - 1
alist[i+1] = key
public void insertSort(int[] a){
int i, j;
for (i = 1; i < a.length; i++){
int temp = a[i];
for (j = i-1; j >= 0 && a[j] > temp; j--){
a[j+1] = a[j];
}
a[j+1] = temp;
}
}