Python練習——簡単なアルゴリズム

15326 ワード

最も基本的で最も簡単な2つのソートと検索をそれぞれ練習しました:バブルソート、選択ソート順検索、二分検索
List定義:list=[1,23,3233455,22,2]1.リストを定義して、このリストの最大値と最小値を求める.リストを定義してバブルソートを完了する3.リスト完了選択ソート4を定義します.リストを定義して一般的な検索検索を完了する22.秩序ある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("************************************")