# InsertionSort 插入排序
def sort_integers(self, a: List[int]):
for i in range(2,len(a)+1):
# i=2,3,4...
# 做len(a)-1次循环
for j in range(i-1,0,-1):
# j=1,2
if a[j-1]>a[j]: # 大的放在后面
a[j-1],a[j]=a[j],a[j-1]
else:
break # 跳出当前循环-for j in range(i-1,0,-1):
def insertionSort(arr):
for i in range(1, len(arr)):
# 做len(arr)-1 次循环
# 从数组的第二个元素开始
key = arr[i]
j = i-1
while j >=0 and key < arr[j] :
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
arr = [12, 11, 13, 5, 6]
insertionSort(arr)
print ("排序后的数组:")
for i in range(len(arr)):
print ("%d" %arr[i])
void DirecInsSort(int* a, int n)
// direct insert sorting
{
int i, k;
for (i=1; i<n; i++) {
//i=1,2,3,4...
// 从数组第二个数开始
// 请在此添加代码,补全函数DirecInsSort
/********** Begin *********/
int temp = a[i];
//从第二个数开始
for(k = i - 1; k >= 0; k--)
// 最开始 k=0,1,2,3,4...
{
if(a[k] > temp)
{
// k+1=i
//a[k+1]=a[i]
a[k + 1] = a[k];
}
//如果a[k]>a[i] , a[k]往前挪一个
else
break;
}
//如果a[i]后面有小于或等于temp=a[i]的 ,把a[i]插入到它的前面
a[k + 1] = temp;
/********** End **********/
}
}
标签:arr,int,插入排序,len,range,key
From: https://www.cnblogs.com/chenrunun/p/17025922.html