2012-04-01 3 views
3

정렬 된 목록이 있고 이전 요소가 < =이고 목록의 다음 요소가> 목록에있는 요소를 배치해야합니다 (목록은 목록입니다.대수 시간에 정렬 된 요소의 위치 요소 Python

) 부동 소수점 숫자의 난 = 즉 내가 로그 시간에이를 구현하는 방법을 이전 요소

<하는 요소의 위치를 ​​반환해야된다. 내가 진 seacrh 유사한 방법을 사용하여 생각하지만 어떤 도움을 주시면 감사하겠습니다

P.S.를 작동시킬 수 없습니다 예이다 : i가 0.5 대를 실행하면 목록

testlist=[0.0, 0.25, 0.5, 0.75, 1.0] 

내가 함수는 1을 반환 0.27 대한 함수를 실행하면 (0.25의 위치)과 복귀 날짜 2

+4

는 "이 일을 가져올 수 없습니다"가 - 당신은 무엇을 시도? – Kimvais

+0

숙제 인 경우, 'bisect' 모듈을 사용하여 제안한 것과 같은 대답을 피하기 위해 태그를 붙여야합니다. –

답변

3

전용 이진 검색을위한 모듈이있다 : bisect

import bisect 

testlist=[0.0, 0.25, 0.5, 0.75, 1.0] 
print bisect.bisect(testlist, .27) - 1 
## 1 
+0

감사합니다. 답변이 작동했습니다. 이제 나머지 코드로 이동할 수 있습니다. –