目录
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))