[ GO1.19排序算法实践| 青训营笔记 ]

73 阅读1分钟

前言

本节课简单介绍了一些数据结构和算法的知识,并且列举了一些经典排序算法。

1.数据结构和算法

1.常见排序算法

  • Python——timsort
  • C++——introsort
  • Rust——pdqsort
  • Go——intorsort
  • Go1.19排序算法速度比较快

2.Insertion Sort

  • 方法:将元素不断插入已经排序好的数组中
  • 特点
    • 其实只有一个元素,其本身是一个有序的序列
    • 后续元素插入有序序列中,即不断交换,直到找到第一个比其小的元素

image.png

  • 时间复杂度

    • best:O(n);avg:O(n^2);worst:O(n^2)
  • 优点:最好情况时间复杂度为O(n)

  • 缺点:平均和最坏情况的时间复杂度为O(n^2)

3.Quick Sort

  • 方法:分治思想,不断分割序列直到序列整体有序

  • 特点

    • 选定一个轴点,用轴点分割序列 image.png
  • 时间复杂度

    • best:O(n*logn);avg:O(n*logn);worst:O(n^2)
  • 优点:平均情况时间复杂度为O(n*logn)

  • 缺点:最坏情况的时间复杂度为O(n^2)

4.Heap Sort

  • 方法:利用堆的性质形成的排序算法

  • 特点

    • 构造一个大顶堆
    • 将根节点交换到最后一个位置,调整整个堆
  • 时间复杂度

    • best:O(n*logn);avg:O(n*logn);worst:O(n*logn)
  • 优点:最坏情况时间复杂度为O(n*logn)

  • 缺点:最好情况的时间复杂度为O(n*logn)