Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在下面的python代码中使用插入排序_Python_Algorithm_Sorting_Error Handling_Insertion - Fatal编程技术网

无法在下面的python代码中使用插入排序

无法在下面的python代码中使用插入排序,python,algorithm,sorting,error-handling,insertion,Python,Algorithm,Sorting,Error Handling,Insertion,下面的代码试图对数组“number”执行插入排序。(并打印排序后的数组) 算法中似乎存在逻辑错误,但我无法发现它,因为它似乎有道理 有人能推荐一个使用现有代码的解决方案并给出适当的解释吗 numbers=[4,1,2,5,3] for i in range(len(numbers)-1): position=1 while position>0 and numbers[position]<numbers[position-1]: #print("Posit

下面的代码试图对数组“number”执行插入排序。(并打印排序后的数组)

算法中似乎存在逻辑错误,但我无法发现它,因为它似乎有道理

有人能推荐一个使用现有代码的解决方案并给出适当的解释吗

numbers=[4,1,2,5,3]
for i in range(len(numbers)-1):
    position=1
    while position>0 and numbers[position]<numbers[position-1]:
      #print("Position:",numbers[position])
      #print("Position-1:",numbers[position-1])
      temp=numbers[position-1]
      numbers[position-1]=numbers[position]
      numbers[position]=temp
      #print("New value of position",numbers[position])

      position=position+1
print(numbers)

print("Insertion Sort)
number=[4,1,2,5,3]
对于范围内的i(长度(数字)-1):
位置=1

当位置>0和数字[position]对程序进行简单修改时,插入排序将起作用

而位置>0
将始终为真,因为位置是递增的

numbers=[4,1,2,5,3]
last_num = len(numbers)-1
for i in range(last_num):
    position=i
    while position<last_num:
        if numbers[position]>numbers[position+1]:
            temp=numbers[position+1]
            numbers[position+1]=numbers[position]
            numbers[position]=temp
        position+=1

print(numbers)

print("Insertion Sort")
编辑: 使用
位置>0
您需要

numbers=[4,1,2,5,3]
last_num = len(numbers)-1
for i in range(last_num):
    position=last_num
    while position>0:
        if numbers[position]<numbers[position-1]:
            temp=numbers[position-1]
            numbers[position-1]=numbers[position]
            numbers[position]=temp
        position-=1

print(numbers)

print("Insertion Sort")
number=[4,1,2,5,3]
last_num=len(数字)-1
对于范围内的i(最后的数量):
位置=最后一个数量
当位置>0时:

如果是数字[position],请提供实际结果和预期结果,以及您已经尝试解决的问题。是否无法使用当前算法在while position>0的情况下解决此问题?
numbers=[4,1,2,5,3]
last_num = len(numbers)-1
for i in range(last_num):
    position=last_num
    while position>0:
        if numbers[position]<numbers[position-1]:
            temp=numbers[position-1]
            numbers[position-1]=numbers[position]
            numbers[position]=temp
        position-=1

print(numbers)

print("Insertion Sort")