摘要:一,顺序表线性枚举 前缀和 双指针 二分枚举 三分枚举 离散化 冒泡排序 选择排序 快速排序 插入排序 希尔排序 归并排序 堆排序 基数排序 计数排序 模拟 贪心二,链表单向链表 双向链表三,栈LIFO栈(后进先出)单调栈四,队列FLFO队列(先进先出) 双端队列 单调队列五,字符串KMP 字典树
阅读全文
摘要:def quick_sort(arr, left, right): origin_left = left origin_right = right pivot_data = arr[left] #枢轴上的值(基准值), 就是开始用来比较的值, 一般是随机选择一个位置, 这儿选择最左边的值 #blan
阅读全文
摘要:参考: https://www.cnblogs.com/kite97/p/13441391.html #include <iostream> #include <vector> #include <algorithm> #include <random> #include <chrono> usin
阅读全文
摘要:参考: https://blog.csdn.net/lyqzzy/article/details/59849252 https://baike.baidu.com/item/二叉堆 二叉堆是一种特殊的堆,二叉堆是完全二元树(二叉树)或者是近似完全二元树(二叉树)。 二叉堆有两种:最大堆和最小堆。最大
阅读全文
摘要:具体参考https://www.cnblogs.com/ciyeer/p/9035072.html 理论参考:https://oiwiki.org/string/kmp/ 下面的makeNext其实是制作前缀函数 前缀函数是字符串所有子字符串的真前缀=真后缀的最大值. /** * 创建next数组(
阅读全文
摘要:结点的度: 结点下面关联几个节点 就是结点的度树的度: 结点度最高的度为树的度叶子结点: 结点下面没子结点 度为0的结点分支标点: 不是叶子结点的结点内部结点:不是最顶层也是不是最底层的结点父结点, 兄弟结点, 子结点都是相对的.层次: 顶层为0层(有些定为1层)下面依次加一层树的结点总数(n)=总度数(k)+1 1 / | \ 2 3 4/ | \ \5 6 7 8 / \ 9 10树的遍历:前序遍历: 根->最左子结点->再最左边(先访问根, 再访问子结点, 子结点, 可以看作一个子树)后序遍历: 先子...
阅读全文
摘要:// QickSort.cpp: 主项目文件。 #include "stdafx.h" #include <iostream> using namespace std; void QickSort(int arr[], int iLength); int SubQickSort(int arr[],
阅读全文
摘要:算法复杂性可以用O,Ω, o, ω, θ 5个字母表示.O表示算法复杂性的上限. Ω表示算法复杂性下限.o表示算法函数比o中的函数低阶. o与O对应, 是下限了.如复杂度为f(n), o(g(n))表示f(n)比g(n)低阶. 像f(n)=n, g(n)=n^2, f(n)就比g(n)低一阶.如果g(n)=2n, f(n)与g(n)为同阶.ω与Ω对应,ω中的函数比f(n)高阶.θ表示f(n), g(n)同阶.=======================以下设f(N)和g(N)是定义在正数集上的正函数。O:如果存在正的常数C和自然数N0,使得当N≥N0时有f(N)≤Cg(N)。则称函数f(N)
阅读全文