随笔分类 -  数据结构与算法

Java解决TopK问题(使用集合和直接实现)
摘要:在处理大量数据的时候,有时候往往需要找出Top前几的数据,这时候如果直接对数据进行排序,在处理海量数据的时候往往就是不可行的了,而且在排序最好的时间复杂度为nlogn,当n远大于需要获取到的数据的时候,时间复杂度就显得过高。 使用最小堆或者最大堆可以很好地解决Top大问题或者Top小问题。 Top大 阅读全文

posted @ 2017-04-14 18:00 liuyang0 阅读(8253) 评论(2) 推荐(1) 编辑

浅析红黑树(一)——红黑树的插入
摘要:概述 红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫•贝尔发明的,他称之为"对称二叉B树",它现代的名字是在Leo J. Guibas和Robert Sedgewick于1978年写的一篇论文 阅读全文

posted @ 2017-04-05 15:28 liuyang0 阅读(1079) 评论(0) 推荐(3) 编辑

常见排序算法总结与实现(冒泡、插入、选择、希尔、堆排序、归并、快排)
摘要:本文使用Java实现这几种排序。 以下是对排序算法总体的介绍。 冒泡排序 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 3. 针对所有的元素重复以上的步骤,除了最后一个。 4. 持 阅读全文

posted @ 2017-03-16 17:47 liuyang0 阅读(1142) 评论(0) 推荐(0) 编辑

Java实现二叉树的前序、中序、后序、层序遍历(非递归方法)
摘要:& 8195;& 8195;在上一篇博客中,实现了Java中二叉树的四种遍历方式的递归实现,接下来,在此实现Java中非递归实现二叉树的前序、中序、后序、层序遍历,在非递归实现中,借助了栈来帮助实现遍历。前序和中序比较类似,也简单一些,但是后序遍历需要两个栈来进行辅助,稍微复杂一些,层序遍历中借助了 阅读全文

posted @ 2017-01-10 23:44 liuyang0 阅读(30231) 评论(2) 推荐(3) 编辑

Java实现二叉树的前序、中序、后序、层序遍历(递归方法)
摘要:& 8195;& 8195;在数据结构中,二叉树是树中我们见得最多的,二叉查找树可以加速我们查找的效率,那么输出一个二叉树也变得尤为重要了。 & 8195;& 8195;二叉树的遍历方法分为四种,分别为前序遍历、中序遍历、后序、层序遍历。下图即为一个二叉树。 前序遍历:先遍历根结点,然后遍历左子树, 阅读全文

posted @ 2017-01-10 23:43 liuyang0 阅读(13668) 评论(1) 推荐(3) 编辑

导航

Flag Counter