
java笔记——数据结构与算法相关
文章平均质量分 79
ww0peo
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java数据结构与算法① ——基本概念
判断数是否是2的整数次幂n&(n-1)特征有穷性、确定性、可行性、有输入、有输出设计原则正确性、可读性、健壮性、高效率、低存储时间复杂度 cpu空间复杂度 内存时间复杂度用O来表示常数型线性型对数型平方型...原创 2019-09-18 17:57:08 · 198 阅读 · 0 评论 -
java数据结构和算法⑨——高效查找(二分查找和Hash查找)
二分查找需要有序时间复杂度为Nlog(N)Hash查找jdk1.7时hashmap的结构就是hash数组和链表jdk1.8后hashmap在链表数据个数大于8时会转换成红黑树所以jdk1.8中hashmap用到的数据结构有hash数组链表和红黑树...原创 2019-09-18 17:58:46 · 571 阅读 · 0 评论 -
java数据结构和算法⑧——迪杰斯特拉算法(最短路径)
问题:求从1到其他每个点的最短路径6 811 6 1001 5 301 3 102 3 53 4 504 6 105 4 205 6 60我们定义一个数组,表示1这个点到其他的点的所有最短距离。开始我就在第1这个点贪心:比如我想通过1到其他的点。如果要产生一个中间点就可以到其他的点,那么我找离我最近的那个点走就一定能到最短的路。那么我们就应该找离1最近的那个点去中...原创 2019-09-18 17:58:34 · 311 阅读 · 0 评论 -
java数据结构和算法⑦——图论入门、BFS(广度搜索)和DFS(深度搜索)
1.图的定义:是一种比线性表和树更为复杂的数据结构,在图形结构中结点之间的关系可以是任意的,任意两个数据元素都可能存在相关性,因此图论在计算中应用相当广泛,知识图谱,推荐算法。2.图的基本元素:结点,顶点,弧(边),弧尾,弧头,有向图(边右箭头),无向图,权(边的权重),子图(递归),出度,入度,回路:从当前点出发 最后又能回到自己。针对有向图处理不好就是死循环。子树:GC:树形结...原创 2019-09-18 17:58:21 · 805 阅读 · 0 评论 -
java数据结构和算法⑥——哈夫曼树
哈夫曼树最优二叉树计算下面三颗二叉树的带权路径长度总和:WPL(a):72+52+22+42=36()WPL(b):73+53+21+42=46()WPL©:71+52+23+43=35()前缀编码class MyNode implements Comparable<MyNode>{ private String chars = ""; //存的数据 p...原创 2019-09-18 17:58:11 · 399 阅读 · 0 评论 -
java数据结构和算法⑤——二叉搜索树、红黑树和Btree
二叉搜索树又叫二叉查找树,二叉排序树;它具有以下特点:1.如果它的左子树不为空,则左子树上结点的值都小于根结点。2.如果它的右子树不为空,则右子树上结点的值都大于根结点。3.子树同样也要遵循以上两点2的N次一定要随时记得为什么又叫做二叉排序树呢?只要一颗树是二叉搜索树,那么它的中序遍历一定是有序的。看右边的这颗二叉树,它的中序遍历为:左 根(输出) 右0 3 4 5 6 8我...原创 2019-09-18 17:58:02 · 353 阅读 · 0 评论 -
java数据结构和算法④——树论基础和归并排序
树是数据结构和算法分析与设计中的一种非常重要的结构,由N个节点组成的具有层次结构的模型。其主要有一下几个特点:1.有一个根节点,一般称为root节点2.每一个元素都被称为node3.除了root节点外,其余的节点都会被分成n个互不相交的集合,子树。递归具体的结构如下所示:树形结构里面的基本术语:结点:树形结构里面的元素子树:当结点大于1时,其余的结点分为的互不相交的集合称为子树...原创 2019-09-18 17:57:53 · 153 阅读 · 0 评论 -
java数据结构和算法③——贪心和动态规划
贪心算法概念:贪心算法又叫做贪婪算法,它在求解某个问题是,总是做出眼前最大利益。也就是说只顾眼前不顾大局,所以它是局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。贪心算法其最重要的两个点就是:贪心策略通过局部最优解能够得到全局最优解会议室安排问题:有N个同等级的...原创 2019-09-18 17:57:40 · 319 阅读 · 0 评论 -
java数据结构和算法②——排序算法
不引入第三个变量交换两个变量的值a = a + bb = a - ba = a - b1.冒泡排序:其核心就是两两比较,但是不是和所有人比价你public static void main(String[] args) { Scanner cin = new Scanner(System.in); int n = cin.nextInt(); int data[] = new i...原创 2019-09-18 17:57:24 · 122 阅读 · 0 评论 -
java数据结构和算法⑩——倒排索引
正向索引是用key找value倒排索引是用value找key类似于hash分词的颗粒度建索引的时候用最小颗粒度:分出所有情况原创 2019-09-18 17:58:56 · 433 阅读 · 0 评论