2016-09-05 3 views
0

목록을 오름차순으로 정렬하는 삽입 정렬 프로그램을 만들려고합니다.Python의 삽입 정렬 오류

listNums = [54, 21, 76, 43, 65, 98, 65, 32, 34, 38] 

    x = 1 
    i = 0 
    Copy = 0 

    for z in range (0, len(listNums)): 
      if listNums[x] < listNums[i]: 
        Copy = listNums[i] 
        listNums[i] = listNums[x] 
        listNums[x] = Copy 
      i = i + 1 
      x = x + 1 

    print(listNums) 
+2

당신이있는 rror의 실제 텍스트 무엇입니까주는 이유리스트의 길이를 넘어 점점? – Amber

+0

'bisect' 모듈은 당신을 위해 모든 일을 할 것입니다 ... – thebjorn

답변

1

기회가 x 결국 제로 인덱스 배열의 범위를 넘어 1 len(listNums)까지 증가하기 때문에이 범위 오류의 위치 :이 프로그램의

line 16, in <module> if listNums[x] < listNums[i]: 

: 나는 오류를 받고 있어요 .

range(0, len(listNums)-1)을 통해서만 반복 해보십시오.

0

난 그냥

[21, 32, 34, 38, 43, 54, 65, 65, 76, 98] 
=> None 

(repl.it에서 컴파일)

을 제공, 즉 그것을 할 수있는 더 좋은 방법,

listNums = [54, 21, 76, 43, 65, 98, 65, 32, 34, 38] 

listNums.sort() 
print listNums 

이 있음을 지적하고 싶습니다 희망이 도움이!

0

이되어 있지 마지막 반복의 insertion sort error 즉, LEN (listNums) 번째 반복, x의 값은 IndexError: list index out of range