2019年8月30日 星期五

選擇排序

找最小的數字
def findsmall(arr):
    smallest=arr[0]
    samllest_index=0
    for i in range(1,len(arr)):
        if (arr[i]<smallest):
            smallest=arr[i]
            smallest_index=i
    return smallest
list01=[13,5,6,7,82,22]
print(findsmall(list01))
========================================

def findmin(arr):
    min=arr[0]
    min_index=0
    for i in range(1,len(arr)):
        if (arr[i]<min):
            min=arr[i]
            min_index=i
    return min_index
#list01=[21,33,44,22,11,55]

def selecq(arr):
    newarr=[]
    for i in range(len(arr)):
        smallest=findmin(arr)
        newarr.append(arr.pop(smallest))
    return newarr
list01=[21,33,44,22,11,55]
print(selecq(list01))

=============其實有函數可以直接執行
list03=[33,22,55,11,88]
newlist05=sorted(list03)
print(list03)                      #原list 不變
print(newlist05)

    ==========或者是

list03=[33,22,55,11,88]
list03.sort()
newlist05=list03.sort()      #newlist05 變成 none
print(list03)
print(newlist05)

2019年8月25日 星期日

二進位搜尋法

適用於完成排序的清單

def binary_search(list,item):
    low=0
    high=len(list)-1
    while low<=high:
        mid=round((low+high)/2)
        guess=list[mid]
        if guess==item:
            return mid
        if guess>item:
            high=mid
        else:
            low=mid
    return None
my_list=[1,3,5,7,9,11]
print(binary_search(my_list,5))


====上述的程式 可能有誤
https://hugheschung.blogspot.com/2019/01/python3.html