선형, 임의 또는 이진 검색

학교에서는 Python으로 숫자 게임과 함께 선형, 무작위 또는 이진 검색을 사용해야 하는 과제가 있었습니다.


선형 검색



선형 검색은 목록의 각 항목을 처음부터 한 번에 하나씩 검사하는 것입니다.
선형 검색 코드의 예는 다음과 같습니다.

number = random.randint(1,100)
count = 0
for i in range(1,100):
  count = count + 1
  if i == number:
    print("The number was " + str(number))
    print("You got it in " + str(count) + " guesses!")
    break



임의 검색



임의 검색은 목록의 각 항목을 무작위로 선택하고 올바른 항목을 찾을 때까지 확인하는 것입니다.
임의 검색 코드의 예는 다음과 같습니다.

number = random.randint(1,100)
allnum = []
for i in range(1,100):
  allnum.append(i)
guess = random.choice(allnum)
allnum.remove(guess)
count = 1
while guess != number:
  count = count + 1
  guess = random.choice(allnum)
  allnum.remove(guess)
print("The number was " + str(number))
print("You got it in " + str(count) + " guesses!")



이진 검색



이진 검색은 찾고 있는 숫자를 찾을 때까지 매번 반으로 줄임으로써 목록을 자르는 것입니다.

number = random.randint(1,100)
lowestnumber = 1
highestnumber = 100
guess = round((highestnumber + lowestnumber) / 2)
count = 1
while guess != number:
  if guess > number:
    if highestnumber > guess:
      highestnumber = guess
    print("The number is smaller than " + str(guess))
  if guess < number:
    if guess > lowestnumber:
      lowestnumber = guess
    print("The number is bigger than " + str(guess))
  guess = guess = round((highestnumber + lowestnumber) / 2)
  count = count + 1
print("The number was " + str(number))
print("You got it in " + str(count) + " guesses!")



어떤 검색이 가장 효율적이라고 생각하십니까?

좋은 웹페이지 즐겨찾기