排序算法及其复杂度

  1. 冒泡排序(Bubble Sort):
    冒泡排序是一种简单的排序算法,它通过不断交换相邻元素的位置来将元素按照从小到大(或从大到小)的顺序排列。时间复杂度为O(n^2),空间复杂度为O(1)。

  2. 选择排序(Selection Sort):
    选择排序是一种简单的排序算法,它通过不断选择未排序序列中最小的元素来将元素按照从小到大(或从大到小)的顺序排列。时间复杂度为O(n^2),空间复杂度为O(1)。

  3. 插入排序(Insertion Sort):
    插入排序是一种简单的排序算法,它通过不断将未排序元素插入已排序序列中来将元素按照从小到大(或从大到小)的顺序排列。时间复杂度为O(n^2),空间复杂度为O(1)。

  4. 快速排序(Quick Sort):
    快速排序是一种常用的排序算法,它通过选取一个基准元素将数组分为两个子数组,然后递归对两个子数组进行排序来将元素按照从小到大(或从大到小)的顺序排列。时间复杂度为O(nlogn)(平均情况),空间复杂度为O(logn)。

  5. 归并排序(Merge Sort):
    归并排序是一种稳定的排序算法,它通过将数组分为两个子数组,递归对两个子数组进行排序,然后将两个有序子数组归并为一个有序数组来将元素按照从小到大(或从大到小)的顺序排列。时间复杂度为O(nlogn),空间复杂度为O(n)。

  6. 堆排序(Heap Sort):
    堆排序是一种常用的排序算法,它通过将数组看作一个完全二叉树来进行排序。首先将数组转换为一个最大堆,然后每次将堆顶元素与最后一个元素交换并调整堆结构来将元素按照从小到大(或从大到小)的顺序排列。时间复杂度为O(nlogn),空间复杂度为O(1)。

你可能感兴趣的:(python学习笔记,排序算法,算法,数据结构)