def unique(ip):
file = open("/home/USER/Desktop/ipAddreses.txt",'r')
list = file.readlines()
list.sort()
low = 1
hi = len(list)
target = convertToStr(ip)
if hi > 1:
while low <= hi:
mid = low + (hi-low)/2
if list[mid] == target:
file.close()
return False
elif list[mid] < target:
low = mid+1
else:
hi = mid-1
else:
if target == list[0]:
return False
file.close()
return True
이 오류가 :인덱싱 오류가 파이썬이 이진 검색 방법을 실행할 때
if list[mid] == target:
IndexError: list index out of range
목적은 모든 무작위로 생성 된 IP 주소가 고유 확인하기 위해 생성 된 IP 주소를 통해 검색하는 것입니다. 전에 일하고 있었어 ... 집에 돌아 왔는데 이제이 오류가 발생합니다
Dougal 감사합니다 !!!!!!!! 이 클래스의 궁극적 인 목표는 클래스에 대한 과제를 완료하는 동안 내 이해를 향상시키는 것입니다.하지만 바이너리 검색을 직접 구현하면 안되는 이유는 무엇입니까? 더 나은 방법은 항상 바이너리 검색을 어디에 구현해야합니까? – user2079902
물론 이진 검색을 직접 구현하여 알고리즘을 이해할 가치가 있습니다. 그러나 일단 바이너리 검색을 사용하려는 경우 코드를 다시 작성할 필요가 없습니다. 이는 공간과 노력이 상당히 필요하고 올바르게 진행되기까지 약간 성가신 일이기 때문입니다. 표준 라이브러리의 구현을 호출하면 읽기 쉽고, 작성하기 쉽고, 올바른 방향으로 쉽게 (실수 할 곳이 적음) 더 빠르게 실행됩니다 (C로 구현되기 때문에). 나는 그것이 아무튼 의심이 열린 (..) 새로 생성 된 IP 주소 – Dougal
질문 하나 더, 나는 또한을 사용하여, 같은 파일을 임의의 주소를 만들려하고있다 어떤 것을 읽은 후에하지 말자. – user2079902