为什么在插入排序开始时j总是= 4?

问题描述 投票:0回答:1

我正在追踪插入,冒泡和选择排序以获得更好的理解/练习追踪。

我正在使用Python Tutor来帮助,无论列表的大小如何,在这个插入开始时,j总是[4]?在线j = a [i]。

什么是[i]?为什么我们将它设为j?我的意思是显然它是[4]大声笑,但我无法弄清楚它从哪里得到4。它也似乎不是Python Tutor指示的索引4,因为如果它是真的它将等于'5'。当我在j = a [i]下添加一行'print(j)'时,第一个数字j和数字4一起出现,即索引[1]。

我只是被烧坏了,完全是愚蠢的/错过了一些明显的东西吗?大声笑

谢谢!!!

def insertion(a):

    for i in range(1,len(a)):
       j = a[i]

           while i>0 and a[i-1]>j:
              print(a[i-j])
              a[i] = a[i-1]
              i = i-1
              a[i] = j

    return (a)

if __name__ == '__main__':
    lst = [2,4,3,1,5,6]
    print(insertion(lst))
python sorting insertion
1个回答
0
投票
  • 我们正在为j分配一个[i],因为我们试图在0..i-1之间找到一个适合a [i]的位置。
  • 我们假设[0..i-1]已经排序。因此,如果我们向后退直到[i - 1]> j就足够了。
  • 当你开始你的循环,你的索引,我将等于1.所以j,将打印4。
© www.soinside.com 2019 - 2024. All rights reserved.