排序算法
- 冒泡排序:通过相邻元素的比较和交换,每次将最大(或最小)的元素逐步“冒泡”到最后(或最前)。时间复杂度:最好情况下O(n),最坏情况下O(n2),平均情况下O(n2)。,空间复杂度:O(1)。
- 插入排序:将待排序元素逐个插入到已排序序列的合适位置,形成有序序列。时间复杂度:最好情况下O(n),最坏情况下O(n2),平均情况下O(n2),空间复杂度:O(1)。
- 选择排序:通过不断选择未排序部分的最小(或最大)元素,并将其放置在已排序部分的末尾(或开头)。时间复杂度:最好情况下O(n2),最坏情况下O(n2),平均情况下O(n^2)。空间复杂度:O(1)。
- 快速排序:通过选择一个基准元素,将数组划分为两个子数组,使得左子数组的元素都小于(或等于)基准元素,右子数组的元素都大于(或等于)基准元素,然后对子数组进行递归排序。时间复杂度:最好情况下O(nlogn),最坏情况下O(n^2),平均情况下O(nlogn)。空间复杂度:最好情况下O(logn),最坏情况下O(n)。
- 归并排序:将数组不断分割为更小的子数组,然后将子数组进行合并,合并过程