Python练习——简单算法

分别练习了两种最基本最简单的排序和查找:
冒泡排序、选择排序
顺序查找、二分查找

list已定义:list=[1,23,3,233,455,22,2]
1.定义一个list 求这个list的最大值和最小值
2.定义一个list 完成冒泡排序
3.定义一个list 完成选择排序
4.定义一个list 完成一个一般的查找 找下标 找22
5.定义一个有序的list 完成一个二分查找 找2

print("1.定义一个list 求这个list的最大值和最小值")
print("list1=[1,23,3,233,455,22,2]")
list1 = [1,23,3,233,455,22,2]
maxValue = list1[0]
minValue = list1[0]
for num in list1:
    if num > maxValue:
        maxValue = num
    elif num < minValue:
        minValue = num
print("最大值是:%d;最小值是:%d" % (maxValue, minValue))
print("**************************************")

print("2.定义一个list 完成冒泡排序")
print("list=[1,23,3,233,455,22,2]")
l1 = [1,23,3,233,455,22,2]
len1 = len(l1)
# 外循环控制次数
for i in range(0, len1-1):
    # 内循环进行比较
    for j in range(0, len1 - 1 - i):
        if l1[j] > l1[j + 1]:
            # 如果前一个大于后一个数,就换
            temp = l1[j+1]
            l1[j+1] = l1[j]
            l1[j] = temp
    print(l1)
print("排序结果为:", l1)
print("************************************")

print("3:定义一个list 完成选择排序")
print("list=[1,23,3,233,455,22,2]")
l2 = [1,23,3,233,455,22,2]
len2 = len(l2)
# 外层循环控制比较的轮数
for i in range(len(l2) - 1):
    # 内层循环控制每一轮比较的次数以及参与比较的下标
    for j in range(i + 1, len2):
        if l2[i] > l2[j]:
            temp = l2[i]
            l2[i] = l2[j]
            l2[j] = temp
    print(l2)
print("排序结果为:", l2)
print("************************************")

# 顺序查找
print("4:定义一个list 完成一个一般的查找  找下标  找22")
print("list=[1,23,3,233,455,22,2]")
l3 = [1,23,3,233,455,22,2]
key = 22
for i in range(0, len(l3)):
    if l3[i] == key:
        print("22的下标为:%d" % i)
print("************************************")

# 二分法查找
# 前提:这个列表必须是有序的
# 每次使用中间值跟要找的值比较
# 比较后每次淘汰掉一半值 在剩余的那一半中再继续寻找  循环这个过程 直到找到为止
print("5:定义一个有序的list 完成一个二分查找 找2")
print("list=[1,23,3,233,455,22,2]")
l4 = [1,23,3,233,455,22,2]
key = 2
len4 = len(l4)
Min = 0  # 最小位置
Max = len4 - 1  # 最大位置
Mid = 0  # 中间位置
while Min <= Max:
    Mid = (Min + Max)
    if l4[Mid] > key:
        Max = Mid - 1
    elif l4[Mid] < key:
        Min = Mid +1
    else:
        print("2的下标是:%d" % Mid)
        break
print("************************************")

你可能感兴趣的:(python)