Python语言自带强大的排序功能,其中最常用的排序算法包括冒泡排序、插入排序、选择排序、快速排序等等。在本文中,我们将会介绍Python语言中的排序算法,并通过实例代码来演示如何使用Python进行排序,最终得到前20个最大或最小的数值。
# 冒泡排序算法 def bubble_sort(arr): n = len(arr) for i in range(n): flag = False for j in range(n - i - 1): if arr[j] >arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] flag = True if not flag: break return arr # 插入排序算法 def insert_sort(arr): n = len(arr) for i in range(1, n): j = i while j >0 and arr[j]< arr[j - 1]: arr[j], arr[j - 1] = arr[j - 1], arr[j] j -= 1 return arr # 选择排序算法 def select_sort(arr): n = len(arr) for i in range(n): min_index = i for j in range(i + 1, n): if arr[j]< arr[min_index]: min_index = j arr[i], arr[min_index] = arr[min_index], arr[i] return arr # 快速排序算法 def quick_sort(arr): if len(arr)<= 1: return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x< pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x >pivot] return quick_sort(left) + middle + quick_sort(right) # 测试排序算法的效率,并输出前20个最大或最小的数字 if __name__ == '__main__': import random import time arr = [random.randint(1, 10000) for _ in range(100000)] start = time.time() result = bubble_sort(arr) end = time.time() print('冒泡排序所用时间:{}'.format(end - start)) print(result[0:20]) start = time.time() result = insert_sort(arr) end = time.time() print('插入排序所用时间:{}'.format(end - start)) print(result[0:20]) start = time.time() result = select_sort(arr) end = time.time() print('选择排序所用时间:{}'.format(end - start)) print(result[0:20]) start = time.time() result = quick_sort(arr) end = time.time() print('快速排序所用时间:{}'.format(end - start)) print(result[0:20])
从上面的代码执行结果可以看出,快速排序是效率最高的排序算法,而冒泡排序是效率最低的排序算法。无论排序算法的效率如何,Python提供了不同的排序算法供我们使用,这对于数据分析和大数据处理都是非常有用的。