csp初赛复习记录

· · 个人记录

::::info[Linnux]

::::

  1. 欧拉回路:通过图的每一条边,最终回到起点的路径。

    欧拉通路:可以不回到起点

  2. 一个自然数 n ,计算 n 的逆元用扩展欧几里得算法

  3. 有 n 个键值的哈希表查找一个元素的时间复杂O(n)

  4. 一棵 ℎ 层的完全二叉树,该树最多包含2^h−1个结点

  5. 队列是一种先进先出(FIFO)的线性结构

  6. 哈夫曼树的构造过程主要是为了实现图的广度优先搜索

  7. 散列表是一种通过散列函数将关键字映射到存储位置的数据结构

  8. 二叉树是一种每个结点最多有两个子结点的树结构

  9. 连通无向图中,完全三叉树一定可以用不超过两种颜色进行染色

10.对比常见排序算法性能

排序算法 最优时间复杂度 平均时间复杂度 最坏时间复杂度 空间复杂度 是否稳定
快速排序 O(n \log n) O(n \log n) O(n^2) O(\log n) ❌ 否
归并排序 O(n \log n) O(n \log n) O(n \log n) O(n) ✅ 是
堆排序 O(n \log n) O(n \log n) O(n \log n) O(1) ❌ 是
插入排序 O(n) O(n^2) O(n^2) O(1) ✅ 否
冒泡排序 O(n) O(n^2) O(n^2) O(1) ✅ 否
选择排序 O(n^2) O(n^2) O(n^2) O(1) ❌ 是
希尔排序 O(n \log n) O(n^{1.3}) O(n^2) O(1) ❌ 否
计数排序 O(n + k) O(n + k) O(n + k) O(k) ✅ 是
桶排序 O(n + k) O(n + k) O(n^2) O(n + k) ✅ 是
基数排序 O(d(n + k)) O(d(n + k)) O(d(n + k)) O(n + k) ✅ 是
  1. g++ -o main main.cpp ,能将一个名为 main.cpp 的 C++ 源文件,编译并生成一个名为 main 的可执行文件
  2. 奇数个结点的树一定只有一个重心
  3. 存在环的图无法拓扑排序