插入排序

# 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 **********/
    }
}

posted @   嘲讽二百五的五百五  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示