B2.4.3 · 排序
选择排序
Python · 逐步执行
选择排序
跟随实际的 Python 执行过程,观察列表的变化。
Python 实现
1def selection_sort(items):2 for start in range(len(items) - 1):3 smallest = start4 for j in range(start + 1, len(items)):5 if items[j] < items[smallest]:6 smallest = j7 items[start], items[smallest] = items[smallest], items[start]8 return items 找出剩余元素中的最小值,再将其交换到正确位置。start 之前的前缀已排序。即使输入已有序,比较的时间复杂度仍为 O(n²)。辅助空间为 O(1)。