摘要: 快速排序 每次从当前考虑的数组中选一个元素,把这个元素想办法挪到应该排好序的位置,比如4这个元素,它就有一个性质4之前的元素都是小于它的,之后的元素都是大于它的,之后我们要做的事情是对小于4和大于4的数组分别继续使用快速排序的思路,逐渐递归下去完成整个排序过程。 对于快速排序如果把选定的元素挪到正确 阅读全文
posted @ 2022-07-20 01:34 放飞梦想C 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 归并排序 首先把数组分成一半,想办法把左右两边数组排序,之后呢再将它们归并起来,这就是归并排序的基本思想。 这样的话如果有N个元素,就会分成log(n)层,如果整个归并过程我们可以以O(n)时间复杂度解决的话,那么我们就设计成了一个 Nlog(n)级别的排序算法。 这个归并的过程需要O(n)的辅助空 阅读全文
posted @ 2022-07-19 13:33 放飞梦想C 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 选择排序 首先在这整个数组范围里找到最小的元素1,然后和第一名的位置交换,之后我们在剩下的部分再找最小的元素2,把2和第二名的位置来交换,以此类推。 selectionSort template<typename T> void selectionSort(T arr[], int n) { for 阅读全文
posted @ 2022-07-18 20:08 放飞梦想C 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 哈希表 哈希表:也叫做散列表。是根据关键字和值(Key-Value)直接进行访问的数据结构。也就是说,它通过关键字 key 和一个映射函数 Hash(key) 计算出对应的值 value,然后把键值对映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做哈希函数(散列函数),用于存放记录的 阅读全文
posted @ 2022-07-13 21:19 放飞梦想C 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 2-3树 为了维护2-3树绝对平衡的性质,插入结点时就要符合一下逻辑: 添加结点不能添加到空位置,除非此时整个树为空。 如果按照二分搜索树的方式插入元素,如果插入位置为空,此时和最后找到的那个叶子节点融合。 红黑树 添加 左旋转 颜色翻转 右旋转 性能 Github Code #pragma onc 阅读全文
posted @ 2022-07-13 19:08 放飞梦想C 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 二叉查找树(BST) 平衡二叉树 平衡因子: 某个结点的左子树的高度减去右子树的高度得到的差值。 插入或删除节点后,可能会造成 AVL 树的平衡被破坏,因此,需要沿着从被插入/删除的节点到根的路径对树进行维护。就是在树的某一部分的不平衡度超过一个阈值后触发相应的平衡操作,保证树的平衡度在可以接受的范 阅读全文
posted @ 2022-07-13 16:23 放飞梦想C 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 并查集和其他树形结构不一样,是由孩子指向父亲,它解决了一些连接问题,怎么才能确定两个点是否相连呢?并查集可以非常快的确定两个点是否连接。 如何确定连个点是否连接呢? 我们可以用一个数组表示,对于0到9每个不同的编号可以表示不同的对象,这里可以看作一个点,而编号对应的不同的元素可以表示不同的集合,其中 阅读全文
posted @ 2022-07-08 19:59 放飞梦想C 阅读(4) 评论(0) 推荐(0) 编辑
摘要: Trie最大的问题:空间!所以可以使用一下解决方案。 Code #pragma once #include <map> class Node { public: explicit Node() noexcept: isWord(false) {} explicit Node(bool isWord) 阅读全文
posted @ 2022-07-07 16:57 放飞梦想C 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 对于数组应用于区间染色实现为On,而线段树是O(logn) 什么是线段树:对于一个二叉树,每一个节点存储的是一个线段或是一个区间相应的信息。 查询 更新 #pragma once #include <cassert> #include <functional> template<typename T 阅读全文
posted @ 2022-07-06 17:08 放飞梦想C 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 验证安全机制 会话管理机制 SQL注入原理 SELECT * FROM test.user WHERE username='' or 1='1' and password='anyxxxxx'; 当username值为' or 1='1时,SQL语句的逻辑表达式结构被修改了,因为 or 1='1' 阅读全文
posted @ 2022-06-15 21:13 放飞梦想C 阅读(6) 评论(0) 推荐(0) 编辑