稳定排序是指在排序过程中,相同元素在排序后保持原有顺序不变。换句话说,对于相同的关键字,它们在排序后的序列中的相对位置不会发生改变。常见的稳定排序算法有插入排序、冒泡排序和基数排序等。
以下是一个简单的冒泡排序实现:
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]
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("排序后的数组:")
for i in range(len(arr)):
print("%d" % arr[i], end=" ")
CopyCopy
什么时候使用稳定排序:
- 需要保持排序前后元素顺序不变的场景。
- 数据中存在大量相等元素时,稳定排序算法性能优于非稳定排序算法。
推荐 Demo: - 实现稳定排序算法,如插入排序、冒泡排序和基数排序等。
- 在实际应用中,根据需求使用稳定排序算法对数据进行排序,例如对列表、元组或字典等进行排序。
- 分析不同场景下稳定排序算法的性能,以及与其他排序算法的比较。稳定排序是指在排序过程中,相同元素在排序后保持原有顺序不变。常见的稳定排序算法有插入排序、冒泡排序和基数排序等。以下是一个简单的冒泡排序实现:
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]
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("排序后的数组:")
for i in range(len(arr)):
print("%d" % arr[i], end=" ")
CopyCopy
什么时候使用稳定排序:
- 需要保持排序前后元素顺序不变的场景。
- 数据中存在大量相等元素时,稳定排序算法性能优于非稳定排序算法。
推荐 Demo: - 实现稳定排序算法,如插入排序、冒泡排序和基数排序等。
- 在实际应用中,根据需求使用稳定排序算法对数据进行排序,例如对列表、元组或字典等进行排序。
- 分析不同场景下稳定排序算法的性能,以及与其他排序算法的比较。