Python 算法一

# 簡單選擇排序
# 每一趟從待排序的數據元素中選出最小(最大)的元素
# 順序放到數列最前,直到全部待排序的數據元素全部遍歷完

def jian_xuanze_sort(a):
    length = len(a)-1   # 剩餘待排序個數
    for temp in range(0, length):
        count = temp   # 記錄當前下標
        for i in range(temp, length):   # 找出下標後所有數據裏最小數據
            if a[count] > a[i+1]:
                count = i + 1
        a[temp],a[count] = a[count], a[temp]
    print(a)
nums = [9, 3, 1, 4, 2, 7, 8, 6, 5]
jian_xuanze_sort(nums)
# 插入排序思想:每一趟將一個待排序元素,按其排序碼大小
# 插入到前面已經排好序的一組元素的適當位置上,直到所有待排序元素元素全部插入爲止
#
# 直接插入排序
# 直接插入排序是假定前i個構成的子序列是處於已排序的情況下進行排序的,

def zhi_cha_sort(nums):
    for i in range(1, len(nums)):  # 默認第一是有序的,後面是待排序數
        while nums[i] < nums[i - 1]:  # 當前判斷的數與前一個相比如果小則交換位置
            nums[i], nums[i - 1] = nums[i - 1], nums[i]
            i -= 1
            if i == 0:  # 到第一個位置退出循環
                break
    print(nums)
nums = [9, 3, 1, 4, 2, 7, 8, 6, 5]
zhi_cha_sort(nums)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章