안녕하세요, 파이썬에 대한 새로운 글은 무엇을 하려는지, 나는 아래 목록에 있습니다.선형 검색 -리스트와 정수를 매칭
length = len(x)
c = input("Enter a no\n")
for i in range (length):
if x[i] == c:
print ("Found at position ", i)
else:
print("not found")
및 출력 오전 수신 :
x= [1,2,3,4,5,6,7,8,9]
여기 내 파이썬 코드입니다. 내가 알아 낸 것을 내 거의 약간의 지식을 가진 자
Enter a no
2
not found
not found
not found
not found
not found
not found
not found
not found
not found
때마다 루프없이 자사의 부족으로 인해 다른 부분으로 이동 목록과 사용할 수없는 경우 아무 검사를 필요 없기 때문에 찾을 수없는이 여러 일어나고있다 적절한
beak
명세서
하지만 x [i]가 인 경우 그 결과가
Found at position 1
이되어야한다는 것을 알 수 없습니다. 나는 어딘가에
if c in x[i]
을 사용할 필요가 있지만 읽을 수는 없다. 손에 나는 코드를 다시 썼다.
def ls():
t = int(input("Enter your search no \n"))
for i in x:
if i!= t:
continue
print("Your value is present in ")
break
else:
print ("parrrrrrrrrrr")
ls()
모두 잘 작동합니다. 그것조차 입력을 찾을 수 없습니다 보여주는 이유는 첫째 프로그램
- 목록
- X의 C는 [I]가 입력 된 부분에 존재 : 내가 알고 얻을 수 있다면 그것은 도움이 될 것입니다 같은 문제가 내 알고 당 (지금은 아무 의미가 없습니다)도 작동해야합니다 그것은 작동해야합니다
- 그것은 정수 대 대 목록의 경우 다음 내 두 번째 코드가 작동하는 방법 - rigt 방법은 선형 수색.
문제는 t이다 hat'str()'과'int()'를 비교해 보자. 라이너 검색에는 O (n)이 있지만 목록이 정렬되어 있으면 O (log n)와 함께 [bisect] (https://docs.python.org/2/library/bisect.html)를 사용할 수 있습니다. – RedEyed
wtf : 입력이 문자열을 사용하는 것을 잊어 버렸습니다. 많은 감사와 o (n) 세부 정보를 설명 할 수있는 링크가 있습니다. 고마워요 @ VadymStupakov –
Google에서 'big o notation'을 (를) 입력하십시오. – RedEyed