随笔分类 -  数据结构

摘要:红黑树是一种可以实现自平衡的二叉查找树,具有以下4个规范: 1)所有节点都是红色或者黑色; 2)根节点和空节点必须为黑色; 3)父节点和子节点不能同时为红色,但可以同时为黑色; 4)从根节点出发,到任意叶子节点,数出的黑色节点数目必须一样。 红黑树的基本操作有两种: 1)recolor; 2)rot 阅读全文
posted @ 2020-10-10 14:48 日进一卒 阅读(138) 评论(0) 推荐(0)
摘要:public class GreatestCommonDivisor { /** * 判断最大公约数: * 1)当a b均为偶数,就求a/2和b/2的最大公约数,再*2 * 2)当a为偶数 b为奇数,就求a/2和b的最大公约数。之所以a/2和b的最大公约数等于a和b的最大公约数, * 是因为a=2* 阅读全文
posted @ 2020-10-05 17:58 日进一卒 阅读(197) 评论(0) 推荐(0)
摘要:1.交换排序 1.1冒泡排序 冒泡排序的时间复杂度是O(n^2)。基本思路是,未排序元素两两比较并交换,选出最大(小)的元素放到已排序元素区的头部。 冒泡排序有两个可以优化的点: 1)在某轮排序中,如果一次交换都没有发生,说明序列已经排好序,可以直接退出排序了; 2)在某轮排序中,如果某次交换后(设 阅读全文
posted @ 2020-10-02 12:11 日进一卒 阅读(204) 评论(0) 推荐(0)
摘要:1.二叉堆的概念 二叉堆是一种特殊的完全二叉树,分为最小二叉堆和最大二叉堆。可以用来构建优先队列。 最小二叉堆:所有父节点都小于等于子节点的完全二叉树; 最大二叉堆:所有父节点都大于等于子节点的完全二叉树。 2.二叉堆的操作 2.1添加节点 新的节点将被作为完全二叉树的最后一个节点进行添加。然后再进 阅读全文
posted @ 2020-09-30 15:57 日进一卒 阅读(191) 评论(0) 推荐(0)
摘要:1.树的基本概念: 1)根节点:指树中最上层的那个节点,整个树中有且仅有1个; 2)父节点:指与某个节点直接相连的上层节点,除根节点以外的每个节点最多有1个父节点; 3)兄弟节点:指父节点相同的同级节点; 4)子节点:该节点衍生出来的与该节点直接相连的节点称为子节点; 5)叶子节点:没有子节点的节点 阅读全文
posted @ 2020-09-29 16:40 日进一卒 阅读(314) 评论(0) 推荐(0)
摘要:1.哈希函数的概念: 哈希函数是将一组任意长度的串映射为固定长度的字符串。在JAVA中,求对象的哈希值是用.hashCode()方法。该方法在Object中已经有实现。 2.哈希表 哈希表是指使用对象的哈希值作为对象的索引的数组。 3.哈希表的写入 4.哈希冲突(哈希碰撞) 当要插入的两个不同的对象 阅读全文
posted @ 2020-09-28 22:37 日进一卒 阅读(189) 评论(0) 推荐(0)