你有没有遇到过这种情况:手机里的联系人名字乱七八糟,想找个人得翻半天?其实这就是个排序问题。在编程里,我们经常要用到排序算法来整理数据,让它们变得井井有条。
什么是排序算法的输入和输出
简单说,输入就是你要整理的一堆数据,比如一组数字、一串名字;输出就是排好序的结果。比如你有一组成绩:[85, 72, 93, 60],经过排序后变成 [60, 72, 85, 93],这就是典型的排序过程。
常见的排序算法示例
以冒泡排序为例,它就像排队做操,两两比较,把小的往前挪。下面是用 Python 实现的代码:
def bubble_sort(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]
return arr
# 输入数据
data = [64, 34, 25, 12, 22, 11, 90]
# 输出结果
sorted_data = bubble_sort(data)
print(sorted_data)
运行这段代码,你会看到输出是:[11, 12, 22, 25, 34, 64, 90]。输入是你给的原始列表,输出就是从小到大排好的新顺序。
再比如快速排序,效率更高,适合处理大量数据。它的思路是“分而治之”:
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)
# 输入
nums = [3, 6, 8, 10, 1, 2, 1]
# 输出
print(quick_sort(nums))
结果会是:[1, 1, 2, 3, 6, 8, 10]。你会发现,虽然写法不一样,但输入输出的形式很清晰:给一个乱序列表,还你一个整齐的。
实际应用场景
电商网站的商品按价格从低到高排序,其实就是后台跑了一遍排序算法。你点一下按钮,系统就把成千上万条数据重新组织好了。输入是商品数据库里的价格列表,输出就是你屏幕上看到的有序结果。
掌握这些基本的输入输出模式,能帮你更快理解程序是怎么工作的。不用一开始就追求最复杂的算法,先把简单的例子跑通,慢慢就上手了。