![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
数据结构
waterkid0
这个作者很懒,什么都没留下…
展开
-
堆排序和计数排序和桶排序
不需要比较的排序算法 : 找出数组中的最大值和最小值,,根据max和min ,创建一个计数数组 countArray,,,遍历原数组,,如果原数组的值等于 计数数组的下标,,则,让计数数组对应的值 +1,,,二叉堆的自我调整,,将堆顶元素 和 最后一个元素 交换,,,将交换之后剩下的元素 ,,重新下调,,,产生新的堆顶元素,,在和倒数第二个元素交换,,,优化成稳定的排序: 排序之后相同值的元素顺序不会改变,,,将计数数组的 值,,变成,之前位置的元素的个数和,,,表示在第几个元素位置上,,原创 2022-09-08 16:48:23 · 74 阅读 · 0 评论 -
冒泡排序和鸡尾酒排序和快速排序
,将比他大的元素移动到右边,将比他小的元素移动到左边,,从而将数列拆解成两个部分,,然后递归继续分。鸡尾酒排序是 先从左到右,,同时从右到左,,,最外层的循环次数就会少一半。,将相邻两个两两比较,当一个元素大于右侧相邻元素时,交换他们的位置,,冒泡排序 (bubble sort): 一种基础的。时间复杂度 O(nlogn)冒泡排序是从左到右遍历,,会在每一轮,挑选一个。基准元素 pivot。原创 2022-09-06 16:55:09 · 175 阅读 · 0 评论 -
二叉树和二叉堆和优先队列
完全二叉树: 所有节点编号从1到n,,如果这个树所有节点和 同样深度的满二叉树的编号从1到n的节点位置相同,则这个树就是完全二叉树。满二叉树:一个二叉树上所有非叶子结点都存在左右孩子,并且所有叶子节点都在同一层级上,,满二叉树的每一个分支都是满的。堆的自我调整: 把一个不符合性质的完全二叉树,调整成一个堆。添加一个元素,,在最后加入一个子节点,,子节点上浮,,,删除一个元素: 将最后一个孩子节点去替代 堆顶 ,,下浮。二叉查找树:又叫二叉排序树,,二叉堆: 本质是完全二叉树。孩子节点: child。原创 2022-09-04 19:30:17 · 259 阅读 · 0 评论 -
队列和栈和哈希表
hash table : 跟数组查找差不多,需要将key通过hash函数,位运算,转换成数组下标。队列(queue): first in first out …按照历史的顺序,将历史重演一遍。栈:stack : first in last out …优先队列: 谁的优先级高,谁先出队,,二叉堆实现。双端队列 dequeue。递归可以用栈代替,,,原创 2022-09-03 13:47:49 · 157 阅读 · 0 评论 -
数组和链表
更新节点: 考虑查找节点的过程。的数据结构,由若干节点组成。不考虑删除后数组排序。原创 2022-09-02 18:41:30 · 125 阅读 · 0 评论