排序(Sortable)学习笔记
什么是排序算法?
排序算法是将一组无序的数据按照一定的规律进行排列的算法。排序算法是计算机程序中常用的基本操作之一,也是从各个方面评估算法优劣的重要指标。
常见的排序算法
- 冒泡排序(Bubble Sort)
- 选择排序(Selection Sort)
- 插入排序(Insertion Sort)
- 希尔排序(Shell Sort)
- 归并排序(Merge Sort)
- 快速排序(Quick Sort)
- 堆排序(Heap Sort)
- 计数排序(Counting Sort)
- 桶排序(Bucket Sort)
- 基数排序(Radix Sort)
实例演示
下面以Python语言为例,使用冒泡排序对列表进行排序。
pythonCopy Codedef bubble_sort(arr):
n = len(arr)
for i in range(n):
flag = False # 设置标志位,如果没有发生交换,则无需继续排序
for j in range(0, 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
arr = [64, 34, 25, 12, 22, 11, 90]
sorted_arr = bubble_sort(arr)
print(sorted_arr) # 输出结果为[11, 12, 22, 25, 34, 64, 90]
以上代码中,我们定义了一个名为bubble_sort
的函数。该函数的参数为待排序列表arr
,返回值为排好序的列表。在函数内部,我们使用双重循环对列表进行排序,其中外层循环用于控制排序轮数,内层循环用于比较相邻元素的大小关系并进行交换。如果在一轮排序中未发生任何交换,则说明已经排好序,并且无需再进行下一轮排序,因此我们在代码中设置了一个标志位flag
,用于判断是否需要继续排序。
使用其他排序算法的实例演示也与冒泡排序类似,只需将对应算法的代码替换掉即可。