首页 飞桨领航团 帖子详情
【AI达人养成营】学习笔记
收藏
快速回复
飞桨领航团 文章AI达人创造营 1080 0
【AI达人养成营】学习笔记
收藏
快速回复
飞桨领航团 文章AI达人创造营 1080 0

虽然学习python和机器学习已经很久了,跟着【AI达人养成营】重新回顾这些知识还是很有意义的。分享一下排序的知识。

题目:这题很简单,对随机生成并且打乱的arr从小到大依次进行冒泡排序,快速排序,插入排序和希尔排序算法的补全。

# 随机生成
import numpy as np

#请把冒泡排序算法补充完整
def bubbleSort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):

# 冒泡法排序
for j in range(0, n-i-1):
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]

if __name__ == '__main__':
# 打乱顺序并随机生成
nums=np.random.permutation(20)
# 原始
print(nums)
bubbleSort(nums)
print(nums)

# 随机生成
import numpy as np

#请把快速排序算法补充完整
def quickSort(arr, start, end):
if start >= end: # 递归的退出条件
return

mid = arr[start]
low = start
high = end
while low < high:
while low < high and arr[high] >= mid:
high -= 1
arr[low] = arr[high]
while low < high and arr[low] < mid:
low += 1
arr[high] = arr[low]
arr[low] = mid

# 递归调用
quickSort(arr, start, low - 1)
quickSort(arr, low + 1, end)

if __name__ == '__main__':
print(nums)
nums=np.random.permutation(20)
quickSort(nums, 0, len(nums) - 1)
print(nums)

# 随机生成
import numpy as np

#请把希尔排序算法补充完整
def shellSort(arr):
n = len(arr)
gap = int(n/2)

while gap > 0:

for i in range(gap,n):

temp = arr[i]
j = i
while j >= gap and arr[j-gap] >temp:
arr[j] = arr[j-gap]
j -= gap
arr[j] = temp
gap = int(gap/2)

if __name__ == '__main__':

nums=np.random.permutation(20)
print(nums)
shellSort(nums)
print(nums)

# 随机生成
import numpy as np

#请把插入排序算法补充完整
def insertionSort(arr):
for i in range(1, len(arr)):

key = arr[i]

j = i-1
while j >=0 and key < arr[j] :
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key

if __name__ == '__main__':

nums=np.random.permutation(20)
print(nums)
insertionSort(nums)
print(nums)

0
收藏
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户