python手寫經典算法詳解(一)的源碼

我有一篇十分詳細!python手寫經典算法詳解(一)的博客,訪問量挺大的,也有不少人收藏了。因此,我決定將源碼清晰地寫在這裏。

冒泡排序

def Bubble(arr):
    for n in range(len(arr)-2):
        for x in range(0,len(arr)-1-n):
            a = arr[x]
            b = arr[x+1]
            if a>b:
                arr[x],arr[x+1]=arr[x+1],arr[x]
    return arr

選擇排序

def FindMinNum(arr):
    minIndex = 0
    for x in range(0,len(arr)):
        if arr[x]<arr[minIndex]:
            minIndex = x
    return minIndex
    
def Selection(arr):
    for x in range(0,len(arr)):
        a = FindMinNum(arr[x:])		#已經排好序的數後面
        arr[a+x],arr[x] = arr[x],arr[a+x]	#交換
    return arr

插入排序

def insertSort(arr):
    for x in range(1,len(arr)):
        while x>0:
            if arr[x]<arr[x-1]:
                arr[x],arr[x-1] = arr[x-1],arr[x]
                x -= 1
            else:
                break
    return arr

線性查找

def Linear(arr,number):
    for x in range(0,len(arr)):
        if arr[x]==number:
            return x

二分查找

def Binary(arr,number):
    while True:
        m = int((l+r)/2)     #Middle index
        n = arr[m]  #Middle number
        if number==n:
            return m
        if number > n:
            l = m
        if number < n:
            r = m
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章