【问题标题】:insertion sort algorithm problem with end result最终结果的插入排序算法问题
【发布时间】:2020-03-15 16:56:49
【问题描述】:
array=[7,2,4,1,5,3]
def insertion(a):
    for i in range(1,len(array)):
        value=a[i]
        hole=i
        while (hole>0 and a[hole-1]>value):
            a[hole]=a[hole-1]
            print(array)
            hole=hole-1
        a[hole]=value

insertion(array)

大家好,如果这是一个愚蠢的问题,我很抱歉,但我一辈子都找不到我的错误。输出似乎有问题。 3似乎迷路了。我知道当有人向我指出这一点时,我会觉得自己很愚蠢..

谢谢!

[7, 7, 4, 1, 5, 3]
[2, 7, 7, 1, 5, 3]
[2, 4, 7, 7, 5, 3]
[2, 4, 4, 7, 5, 3]
[2, 2, 4, 7, 5, 3]
[1, 2, 4, 7, 7, 3]
[1, 2, 4, 5, 7, 7]
[1, 2, 4, 5, 5, 7]
[1, 2, 4, 4, 5, 7]

【问题讨论】:

  • 函数完成后,您是否尝试打印array 的值?
  • @ScottHunter 谢谢,伙计。有效。我很感激

标签: data-structures insertion-sort


【解决方案1】:

def插入排序(arr):

for i in range(1, len(arr)): 

    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 ("Sorted array is:") 
for i in range(len(arr)): 
    print ("%d" %arr[i]

) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 2021-12-13
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    相关资源
    最近更新 更多