
数据结构
数据结构(Java版本)
辉哥大数据
余辉,硕士毕业于中科院,从事IT行业12年。专注于大数据、云数据、用户画像、推荐算法。在数据团队担任过的角色:研发、架构师、负责人、讲师。数据知识产权:出版大数据书籍【1】本,论文【2】篇,软著【6】篇,专利【65】篇。
展开
-
案例--检验表达式中的括号是否成对出现
/** * 检验表达式中的括号是否成对出现 */ def isMatch(rules: String): Boolean = { // 括号中文转英文字符 val str = rules.replaceAll("(", "(").replaceAll(")", ")") // 设置栈存储容器 val brackets = new util.HashMap[Character, Character] // key值为:')' ,value值...原创 2022-01-17 17:33:43 · 446 阅读 · 0 评论 -
数据结构8种排序时间和空间复杂度对比
算法复杂度分析 http://blog.youkuaiyun.com/silentwolfyh/article/details/73162862插入排序–Java版 http://blog.youkuaiyun.com/silentwolfyh/article/details/73187088希尔排序–Java版 http://blog.youkuaiyun.com/silentwolfyh/article/details原创 2017-08-17 15:50:48 · 4766 阅读 · 0 评论 -
算法复杂度分析
目录:1、为什么要进行算法分析?2、如何衡量算法复杂度?3、算法的运行时间与什么相关?4、算法分析的种类:5、试例解说——————————————————————————————————–1、为什么要进行算法分析?预测算法所需的资源 计算时间(CPU 消耗) 内存空间(RAM 消耗) 通信时间(带宽消耗)预测算法的运行时间 在给定输入规模时,所执行的基本操作数量。 或者称原创 2017-06-13 10:27:50 · 1614 阅读 · 0 评论 -
二分查找--Java版
目录1、二分查找解释2、二分查找图解3、二分查找代码——————————————————————————————————1、二分查找解释 算法思想:又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大, 则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止, 否则序列中没有待原创 2017-06-07 16:42:02 · 864 阅读 · 0 评论 -
冒泡排序--Java版
目录:1、介绍:2、步骤:3、排序效果:4、代码展示5、结果展示————————————————————————————1、介绍:冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的原创 2017-06-07 16:59:25 · 997 阅读 · 0 评论 -
插入排序--Java版
目录:1、介绍:2、步骤:3、排序效果:4、代码展示:5、结果展现:———————————————————————————————————-1、介绍: 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)原创 2017-06-13 15:46:40 · 974 阅读 · 2 评论 -
选择排序--Java版
目录:1、介绍2、步骤3、排序效果4、代码展示5、结果展示————————————————————————————1、介绍 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。2、步骤原创 2017-06-13 16:05:24 · 902 阅读 · 0 评论 -
使用一维数组存储二叉树--Java版
package com.datastructure;/*** * 需求:使用一维数组存储二叉树 * 步骤: * 1、查看原始数据的个数(8个),从而制定二叉树层级(4层),得到满二叉树节点个数(15个) * 2、二叉树节点(15个)为一维数组,全设置为0 * 3、循环遍历原始数据,第一个值为树根 * 4、第二个值与父节点比较,如果大于树根,则往右子树比较,如果数组内的值小于或等于树根,则原创 2017-08-09 08:51:52 · 10419 阅读 · 1 评论 -
大顶堆和小顶堆--Java版
目录:1、前期参考2、大顶堆原理3、小顶堆原理4、大顶堆和小顶堆对比图5、大顶堆代码6、执行结果————————————————————————————-1、前期参考使用一维数组存储二叉树 http://blog.youkuaiyun.com/silentwolfyh/article/details/76946539 Java链表来存储二叉树和(前中后序)遍历二叉树 http://blog.csdn原创 2017-08-11 16:01:04 · 11295 阅读 · 3 评论 -
大顶堆积排序--Java版
目录1、介绍2、步骤解说3、图解4、代码展示5、结果展示————————————————————————————–1、介绍提前参考: Java实现大顶堆和小顶堆 http://blog.youkuaiyun.com/silentwolfyh/article/details/77099258介绍:先将数组按照大顶堆排序,接着一个一个移除【顶节点】2、步骤解说1、看明白Java实现大顶堆和小顶堆 2、在“原创 2017-08-11 17:14:22 · 1397 阅读 · 2 评论 -
希尔排序--Java版
目录1、介绍2、步骤解说3、图解4、代码展示5、结果展示———————————————————————————1、介绍 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序原创 2017-08-14 15:24:28 · 1185 阅读 · 2 评论 -
Java链表来存储二叉树和(前中后序)遍历二叉树--Java版
全二叉树展示 前根序遍历:先遍历根结点,然后遍历左子树,最后遍历右子树。遍历的顺序为:ABDGHCEIF 2.中根序遍历:先遍历左子树,然后遍历根结点,最后遍历右子树。遍历的顺序为:GDHBAEICF3.后根序遍历:先遍历左子树,然后遍历右子树,最后遍历根节点。遍历的顺序为:GHDBIEFCA package com.datastructure;/** * Created by silentwo原创 2017-06-07 16:45:01 · 2710 阅读 · 2 评论 -
归并排序 --Java版本
目录1、需求2、图解3、代码展示及步骤解说4、结果展示——————————————————————————————-1、需求 归并排序 –Java版本 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子原创 2017-08-14 16:48:56 · 1844 阅读 · 0 评论 -
快速排序 --Java版本
目录1、快速排序解释2、快速排序大白话(认真看)3、代码展示4、结果展示——————————————————————————————-1、快速排序解释 快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要原创 2017-08-15 14:22:06 · 3162 阅读 · 2 评论