
算法之排序和查找
文章平均质量分 91
包括11中排序算法发和7中经典查找算法
NaisituMiteyu
不写注释的代码,是没有灵魂的
展开
-
树以及树的排序与查找算法
目录树数组如何生成平衡二叉树二叉查找树(二叉搜索树,BST)二叉排序树的构建二叉平衡树平衡二叉树的调整B树特点:B-树B+树特点:红黑树特点:最佳二叉树(Huffman Tree:哈弗曼树)完全二叉树和满二叉树将树转化为二叉树二叉树的存储方式二叉树的遍历方式二叉树节点的计算公式树动态查找树主要有:二叉查找树(Binary Search Tree,BST,二叉排序树)平衡二叉树(Balanced Binary Search Tree,AVL树)红黑树(Red-Black Tree,RB-Tree)原创 2020-07-31 14:16:31 · 812 阅读 · 0 评论 -
计算机基础——7种基础查找算法
查找1.顺序查找2.二分查找3.插值查找4.斐波拉契数列5.数表查找6.分块查找7.哈希查找查找算法的分类:1.静态查找和动态查找:动态和静态都是相对于表而言的。动态表中有删除和插入操作。2.无序查找和有序查找:被查找的数列是否有序。1.顺序查找基本思想:顺序查找就是按照顺序,从数据结构的一端,顺序扫描,直到查找成功。平均查找长度ASL:(n+1)/2时间复杂度:O(n)2.二分查找前提:元素必须是有序的。而且是顺序表存储结构基本思想:将目标元素与位于(1+n)/2位置的元原创 2020-07-29 17:32:00 · 3607 阅读 · 0 评论 -
计算机基础——哈希算法
哈希算法概念哈希表就是一种以键-值(key-value)形式进行存储的数据结构,查找时,只要输入key,就能找到对应的值。哈希表的意义哈希表是一个在时间和空间上做出权衡的经典例子。如果没有内存限制,那么可以直接将键作为数组的索引。那么所有的查找时间复杂度都为O(1);如果没有时间限制,那么我们可以使用无序数组并进行顺序查找,这样只需要很少的内存。哈希表使用了适度的时间和空间来在这两个极端之间找到了平衡。只需要调整哈希函数算法即可在时间和空间上做出取舍。使用哈希查找的两个步骤1.使用哈希函数生成索转载 2020-07-10 14:51:40 · 1428 阅读 · 0 评论 -
计算机基础——树(Tree)
B树什么是B树:即二叉搜索树特点:1.所有非叶子节点之多拥有两个儿子节点(left和Right);2.所有节点存储一个关键字3.非叶子节点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;4.当所有非叶子节点的左右子树的节点数目均保持差不多,则是平衡二叉树。5.实际使用的B树都是在原B树的基础上加上平衡算法,即“平衡二叉树”,平衡算法是一种在B树中插入和删除结点的策略。B-树特点:1.关键字集合分布在整棵树中;2.热河一个关键字只出现且只出现在一个节点中;3.搜索有可能在原创 2020-07-10 15:58:30 · 1829 阅读 · 0 评论 -
计算机基础——11种排序(sort)算法
从一个无序数组中获取前十最大的元素,或者最小元素使用堆排序最快1.快速排序 O(n^2)2.堆排序 O(n+10logn)3.归并排序 O(nlogn)4.基数排序 O(n)1.快排选取一个基准数,序列最左边的和最右边分别设置一个探针,先从右往左找一个小基准的数,再从左往右找一个大于基准的数,然后交换他们。重复以上过程,直到探针相遇。平均复杂度为O(nlogn)最坏复杂度为O(n^2)2.堆排序不稳定排序,升序使用大顶堆(每个节点的值都大于原创 2020-07-10 15:51:20 · 7382 阅读 · 0 评论