这里主要给大家介绍的是啊哈算法中桶排序、冒泡排序和快速排序的python版本。
一、桶排序book = [0 for _ in range(1001)] # 作为桶排序的桶
n = int(input())
nums = list(map(int, input().split()))
for i in range(n):
book[nums[i]] += 1
# 输出
for i in range(1000,-1,-1): # 依次判断编号1000-0的桶看其内部是否存在元素
for _ in range(book[i]):
print(i, end = ' ')
"""
测试样例
10
8 100 50 22 15 6 1 1000 999 0
"""
二、冒泡排序
# 输入
n = int(input())
nums = list(map(int,input().split()))
# 进行冒泡排序
for i in range(n-1): # n个数只用进行n-1遍
for j in range(n-i-1): # 每遍历一次确定最后一个元素,下次需要判断的元素就少一个
if nums[j] < nums[j+1]:
nums[j], nums[j+1] = nums[j+1], nums[j]
print(nums)
"""
测试样例
10
8 100 50 22 15 6 1 1000 999 0
"""
三、快速排序
def quicksort(left, right):
if left > right:
return
i, j = left, right
temp = nums[left] # temp保存的是基函数
while i != j:
# 要先从右往左遍历
while nums[j] >= temp and i < j:
j -= 1
# 在从左往右遍历
while nums[i] <= temp and i
总结
快速排序算法中的两个哨兵一定要先从右往左遍历,然后再从左往右遍历的,每次遍历完都将交换两个哨兵。



