为什么这个程序会出现数组越界?我找了半天找不到

def insert_sort(array):
    array_length = len(array)
        for i in range(1, array_length):
        j = i 
           while(array[j] > array[j-1]):
           array[j], array[j-1] = array[j-1], array[j]
           j = j-1
          return array
if __name__ == '__main__':
    array = [1,6,2,4,8,3,7,5,9]
    print(insert_sort(array))

想要写一个插入排序,不知道为什么会越界?

慕码人2483693
浏览 254回答 1
1回答

元芳怎么了

数组的索引的最大值应该是数组的长度-1 是最后一个元素 所以 应该是  def insert_sort(array): array_length = len(array) for i in range(1, array_length-1): j = i while(array[j] > array[j-1]): array[j], array[j-1] = array[j-1], array[j] j = j-1 return array if __name__ == '__main__': array = [1,6,2,4,8,3,7,5,9] print(insert_sort(array))
打开App,查看更多内容
随时随地看视频慕课网APP