这段冒泡排序的算法具有选择性的反向排序功能,当reverse=True时,输出为反向排序的list。
虽然算法比较简单,但需要注意的是这段代码的时间复杂度为 O(
n
2
n^2
n2)。
def bubble_sort(nums: list, reverse = False):
for i in range(len(nums)):
for j in range(len(nums) - i - 1):
if nums[j] > nums[j + 1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
if reverse:
nums.reverse()
return nums
L=[2, 6, 3, 5, 4, 8, 1, 0, 15, 13, 11, 12] # list for test
L_sort = bubble_sort(L, True)
print(L_sort)