数组排序

快速排序

快速排序是一种分治的排序算法,它将一个数组分成两个子数组,然后递归地对子数组进行排序。具体步骤如下:
  1. 首先选择一个枢轴元素(pivot)。
  1. 将数组中小于等于枢轴元素的部分移动到数组左侧,大于枢轴元素的部分移动到数组右侧。
  1. 对左右子数组递归地进行步骤1和步骤2操作。
时间复杂度为O(nlogn),空间复杂度为O(logn)。

归并排序

归并排序是一种分治算法,它将一个数组分成两个子数组,然后递归地对子数组进行排序,最后将两个有序的子数组合并成一个有序的数组。具体步骤如下:
  1. 递归地把当前序列平均分成两半。
  1. 对左右子序列分别递归地进行排序。
  1. 将左右排好序的子序列合并成一个有序序列。
时间复杂度为O(nlogn),空间复杂度为O(n)。

冒泡排序

冒泡排序是一种简单的排序算法,它通过多次遍历列表,比较相邻的元素,并交换它们的位置来完成排序。具体步骤如下:
  1. 从第一个元素开始,比较相邻的两个元素,如果前一个元素比后一个元素大,则交换这两个元素的位置。
  1. 对列表中的每个相邻元素做同样的工作,执行完一轮后,最后一个元素会是最大的数。
  1. 针对所有未排好序的元素重复以上步骤,直至没有任何一对数字需要比较为止。
时间复杂度为O(n^2),空间复杂度为O(1)。
Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP