📅  最后修改于: 2023-12-03 15:39:49.894000             🧑  作者: Mango
在某些场景中,需要对已知楼层数组进行排序,以便更快地访问所需楼层。这种需求可能会在电梯、楼梯等场景中出现。本文将介绍两种常见的排序算法:冒泡排序和快速排序。
冒泡排序是一种简单的排序算法,其思想是将相邻的元素进行比较并交换。通过多次遍历数组,将最大的元素“冒泡”到数组的最后一位。
以下是冒泡排序的示例代码:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
其中,arr
为待排序的数组。时间复杂度为 $O(n^2)$,空间复杂度为 $O(1)$。
快速排序是一种常见的排序算法。其思想是选择一个基准数,将数组分为左右两部分,并对左右两部分分别进行排序,最终将排序后的左右两部分与基准数合并起来。
以下是快速排序的示例代码:
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0]
left = []
right = []
for i in arr[1:]:
if i < pivot:
left.append(i)
else:
right.append(i)
return quick_sort(left) + [pivot] + quick_sort(right)
其中,arr
为待排序的数组。时间复杂度为 $O(nlogn)$,空间复杂度为 $O(n)$。
本文介绍了两种常见的排序算法:冒泡排序和快速排序。它们都可以用于对已知楼层数组进行排序。冒泡排序时间复杂度为 $O(n^2)$,空间复杂度为 $O(1)$,适用于小规模数据。快速排序时间复杂度为 $O(nlogn)$,空间复杂度为 $O(n)$,适用于大规模数据。根据具体场景需求,可选择合适的算法。