算法
fuli_fox
苦逼的新手程序猿!
展开
-
红黑树讲解
红黑树操作一、定义二、红黑树节点基本操作2.1、左旋2.2、右旋三、红黑树节点插入3.1、case1 叔叔是红色3.2、case2 叔叔是黑色,且当前节点是右孩子3.3、case3 叔叔是黑色,且当前节点是左孩子四、红黑树节点删除五、参考资料一、定义R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。红黑树规则特点: 1、每个节点或者是黑色,或者是红色。 2、根节点是原创 2020-07-05 20:23:21 · 426 阅读 · 0 评论 -
数据结构-最大值堆构建过程
最大值堆堆操作添加元素取出元素初始化最大值堆C++代码实现排序算法总结堆二叉堆(Binary Heap)二叉堆是一颗完全二叉树堆中某个节点的值总是大于等于(或小于等于)其子节点, 对应的就是最大堆和最小堆可以用数组存储二叉堆,数组以1下标开始:数组以下标0开始:操作添加元素在数组的最后一个位置添加一个新元素新的元素进行上浮(Sift Up), 上浮操作如下图:取出元素堆每次只能取出最大的元素, 具体取出元素的步骤如下 :将堆的根节点与最后一个元素交换位置删除原创 2020-06-29 21:12:44 · 2085 阅读 · 1 评论 -
链表中二级指针作用(图示)
链表二级指针问题前提知识变量内存中都有自己的地址初始化链表需要双指针使用双指针情况使用单指针情况前提知识这个问题比较像函数传递时的值传递和引用传递类似,具体可以看下面两段代码,方便理解后面双指针。可以看到输出结果左侧还是6,而右侧输出0,这就是关键所在。形参m只是实参a的一个赋值的变量,形参我们都知道是函数调用时候才分配内存单元,当函数调用完毕后,形参就会被释放掉,所以左侧程序可以这么理解:定...原创 2019-11-03 20:16:14 · 2839 阅读 · 4 评论 -
排序算法总结
排序算法总结简介冒泡排序选择排序插入排序希尔排序快速排序归并排序堆排序计数排序桶排序基数排序简介排序算法是程序员必须掌握的基础算法,其中分为内部排序和外部排序,其中内部排序是指只用到了电脑内存而不使用外存的排序方式,相对的外部排序就是同时使用了电脑内存和外存的排序方式。本文这里只讨论内部排序。对于排序算法,可以按照不同的标准进行分类,有基于比较和非比较的排序,比较在这里是指需要比较两个元素的...原创 2019-10-23 12:17:21 · 222 阅读 · 0 评论