Sort & Search

From Biolecture.org
<span style="font-size:28px"><strong>practice </strong></span>
def binary_search(num_list,target):
    first = 0
    last = len(num_list) - 1
    found = False
    while first <= last and not found:
        midpoint = (first + last) // 2
        if num_list[midpoint] == target:
            found = true
        else:
            if target < num_list[midpoint]:
                last = midpoint -1
            else:
                first = midpoint + 1
    return found
def bubble_sort(num_list):
    for pass_num in range(len(num_list)-1,0,-1):
        for i in range(pass_num):
            if num_list[i]>num_list[i+1]:
                temp=num_list[i]
                num_list[i]=num_list[i+1]
                num_list[i+1]=temp
    return num_list
def selection_sort(num_list):
    for fill_slot in range(0, len(num_list)-1):
        pos_of_min=fill_slot
        for location in range(fill_slot, len(num_list)):
            if num_list[location]<num_list[pos_of_min]:
                pos_of_min = location
        temp=num_list[fill_slot]
        num_list[fill_slot]=num_list[pos_of_min]
        num_list[pos_of_min]=temp
    return num_list
def insertion_sort(num_list):
    for index in range(1,len(num_list)):
        current_value=num_list[index]
        position=index
        while position>0 and num_list[position-1]>current_value:
            num_list[position]=num_list[posiont-1]
            position-=1
            num_list[position]=current_value
    return num_list
count=int(input("Enter the number of numbers:"))
num_list=[]
for i in range(0,ocunt):
    number=int(input("Enter the number:"))
    num_list.append(number)
print("The number list is",num_list)
a=str(input("Enter the types of sort(bubble, selection, insertion):"))
while True:
    if a=='bubble':
        num_list[fill_slot]=num_list[pos_of_min]
        num_list[pos_of_min]=temp
    return num_list
def insertion_sort(num_list):
    for index in range(1, len(num_list)):
        current_value=num_list[index]
        position=index
        while position>0 and num_list[position-1]>current_value:
            num_list[position]=num_list[position-1]
            position-=1
            num_list[position]=current_value
    return num_list
count=int(input("Enter the number of numbers:"))
num_list=[]
for i in range(0,count):
    number=int(input("Enter the number:"))
    num_list.append(number)
print("The number list is", num_list)

a=str(input("Enter the types of sort(bubble, selection, insertion):"))
while True:
    if a=='bubble':
        bubble_sort(num_list)
        break
    elif a=='selection':
        selection_sort(num_list)
        break
    elif a=='insertion':
        insertion_sort(num_list)
        break
    else:
        a = input("Enter the types of sort(bubble, seletion, insertion):")

# If "bubble", call bubble_sort(num_list)
# If "selection", call selection_sort(num_list)
# If "insertion", call insertion_sort(num_list)
# If anything else, we should request user to input again!

print("The sorted number list is", num_list)
target= int(input("Enter the target number to find: "))
result = binary_search(num_list, target)

if result == True:
    print("We found!")
else:
    print("we cannot found!")