Python实现冒泡排序,快速排序,插入排序和希尔排序算法


Python实现冒泡排序,快速排序,插入排序和希尔排序算法

目录

Python实现冒泡排序,快速排序,插入排序和希尔排序算法

前言

一、冒泡排序

二、快速排序

三、插入排序

四、希尔排序



前言

这些排序算法以前都用C++实现过,这里记录一下飞桨领航团AI达人养成营下的作业。

下面是一些是个人觉得对这些算法写的还不错博客

六大排序算法:插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序


一、冒泡排序

# 随机生成
import numpy as np

#请把冒泡排序算法补充完整
def bubble_sort(nums):
    '''
    代码补充
    '''
    for i in range(len(nums)-1):
        for j in range(i, len(nums)):
            if nums[i] > nums[j]:
                k = nums[i]
                nums[i] = nums[j]
                nums[j] = k
    return nums
            
if __name__ == '__main__':
    # 打乱顺序并随机生成
    nums=np.random.permutation(20)
    print(nums)
    print(bubble_sort(nums))


二、快速排序

# 随机生成
import numpy as np

#请把快速排序算法补充完整
def quickSort(arr):
    '''
    代码补充
    '''
    if len(arr) < 2:
        return arr

    tmp = arr[0]
    smaller_arr = [i for i in arr[1:] if i <= tmp]
    bigger_arr =  [i for i in arr[1:] if i > tmp]
    return quickSort(smaller_arr) + [tmp] + quickSort(bigger_arr)

if __name__ == '__main__':
    
    nums=np.random.permutation(20)
    print(nums)
    print(quickSort(nums))

三、插入排序

# 随机生成
import numpy as np

#请把插入排序算法补充完整
def insertionSort(arr):
    '''
    代码补充
    '''
    for i in range(1, len(arr)):
        tmp = arr[i]
        j = i-1
        while tmp < arr[j] and j>=0:
            arr[j+1] = arr[j]
            j -= 1
        arr[j+1] = tmp
    return arr
if __name__ == '__main__':
    
    nums=np.random.permutation(20)
    print(nums)
    print(insertionSort(nums))  

四、希尔排序

# 随机生成
import numpy as np

#请把希尔排序算法补充完整
def shellSort(arr):
    '''
    代码补充
    '''
    group = len(arr)
    while group:
        group //= 2
        for i in range(0, len(arr) - group):
            tmp = arr[i + group]
            j = i
            while tmp < arr[j] and j>=0:
                arr[j+group] = arr[j]
                j -= group
            arr[j+group] = tmp
    return arr

            
if __name__ == '__main__':
    
    nums=np.random.permutation(20)
    print(nums)
    print(shellSort(nums))

你可能感兴趣的:(Python学习,排序算法,python,算法)