递归插入排序在 python 中不起作用

Recursive insertion sorting not working in python

    import sys

首先创建了一个函数并将arr和n作为参数传递。

    def recursiveinsertionsort(arr,n):

基础 case:when n=0 或 n=1。

        if n<=1:
        return

现在调用序列直到剩余的 n-1 项。

    recursiveinsertionsort(arr,n-1)
    temp=arr[n-1]
    j=n-2
    while j>=0 and arr[j+1] < arr[j]:
        arr[j+1]=arr[j]
        j-=1
    arr[j+1]=temp


    def printArray(arr,n):
        for i in range(n):
            print(arr[i])


    arr=[15,12,26,98,45,3]
    n=len(arr)
    recursiveinsertionsort(arr,n)
    printArray(arr,n)

输出未排序。

在您的 while 循环条件中,将 arr[j+1] < arr[j] 更改为 arr[j] > temp

如评论中所述,插入排序算法的工作原理是找到 temp 应该移动到数组中的位置。查看 this post 了解有关递归插入排序的更多信息。