
数据结构与算法
code is cheap
这个人很懒,什么都没留下啊
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
回文整数判断
import java.lang.reflect.Proxy;import java.util.HashMap;import java.util.Map;public class Test { public static void main(String[] args) { int count=0; //逆序数和原数相等,则可计入 //输入target的位数n,先假定n...原创 2019-05-01 09:44:51 · 326 阅读 · 0 评论 -
数据结构与算法——插值查找算法实现
插值查找算法与二分查找的不同点原理:int mid = (high-low) / 2;//二分查找 int mid = (high - low) * (findVal - arr[low]) / (arr[high] - arr[low]);//插值查找至于为什么这个公试会比较快,欢迎*大的朋友给我上上课算法实现public class InsertValueSearchDe...原创 2019-06-22 23:21:35 · 307 阅读 · 0 评论 -
二分查找实现(递归和非递归)
思想比较简单,就直接贴代码了/** * 递归的二分查找,查找单个值 * 时间复杂度:log2n * 有点像二叉排序树的查找 * @param arr 待查找数组,有序 * @param low * @param high * @param findVal 待找值 * @return 待找值的下标,没有返回-1 ...原创 2019-06-23 00:47:34 · 223 阅读 · 0 评论 -
数据结构和算法——快速排序递归实现(java)
算法思路大概思路:把待排序数组与枢轴值较,大的放在枢轴值右边,小的放在其左边 再分别按上述步骤递归左边部分和右边部分,当左指针快速排序算法的时间复杂度取决于递归的深度,最坏的情况是n^21.创建两个指针,左指针和右指针和一个基准值,当左指针>右指针,退出递归;左指针指向最左边的值,右指针指向最右边的值,基准值为第一个数 //递归结束条件 if (low&...原创 2019-06-22 20:56:51 · 448 阅读 · 0 评论 -
三种简单的排序(冒泡、选择、插入)
冒泡排序/** * 对数组进行冒泡排序 * 1.2 对算法进行优化,如果某一次排序中,没有出先交换, * 那么说明已经是有序的 * @param arr */ public static void bubbleSort(int[] arr){ int temp = 0; //标志是否有交换 tru...原创 2019-06-17 14:28:21 · 238 阅读 · 0 评论 -
java实现逆波兰表(后缀)达式计算器(注释超详细)
如果不知道什么是前缀、中缀、后缀表达式的请参考此博客https://blog.youkuaiyun.com/Antineutrino/article/details/67637221、将中缀表达式转换成列表,方便运算/** * 将表达式放进list * @param expression * @return 中缀表达式列表 */ public List&...原创 2019-06-16 16:45:52 · 343 阅读 · 0 评论 -
单链表面试题
/** * 计算链表长度 * @param head * @return */ public int length(HeroNode head){ int length = 0; if (null==head.next){ return 0; } HeroNod...原创 2019-06-11 07:48:10 · 124 阅读 · 0 评论 -
单链表学习之水浒群雄传
创建英雄卡片节点类,包含英雄编号、姓名、外号、及下一个指针域class HeroNode{ public int no; public String name; //真实姓名 public String nickName;//昵称 public HeroNode next; public HeroNode(int no, String name, St...原创 2019-06-11 07:45:49 · 192 阅读 · 0 评论 -
稀疏矩阵的实现:棋盘的存个档读档
利用稀疏矩阵压缩存储棋盘:二维数组-》稀疏矩阵-》文件package hanshunping.sparsearray;import java.io.File;import java.io.FileWriter;import java.io.IOException;/** * 游戏存档 二维数组->稀疏矩阵->文件 * @author Administrator * ...原创 2019-06-10 10:35:04 · 294 阅读 · 0 评论 -
用java实现栈,并且利用栈的特性计算中缀表达式(待加入括号)
什么是栈?简单讲就是先进后出,吃进去吐出来,可以用链表实现,也可以用数组实现我们来看看jdk1.8中栈的源码publicclass Stack<E> extends Vector<E> { /** * Creates an empty Stack. */ public Stack() { } public E...原创 2019-06-14 16:41:36 · 930 阅读 · 1 评论 -
循环链表模拟约瑟夫(josephu)问题
什么是约瑟夫问题约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。创建节点类class Boy{ //小孩编号 private int no; private Boy next...原创 2019-06-12 21:53:37 · 865 阅读 · 0 评论 -
数据结构和算法——二叉树应用之堆排序
1、预备知识利用大顶堆进行升序排序不多说,先看看大顶堆长什么鸟样特征就是对于每一个局部二叉树,父节点总是大于左右子节点,左右节点的大小没有关系。小顶堆同理。二叉树和数组的关系:上面的二叉树可以转换成相应的数组是[90,80,70,60,50,60,20,10],具体怎么转化,苦于自身口技,大家就自己查资料吧2、开始排序2.1、基本思想:对于算法,思想才是精髓。1)将...原创 2019-06-30 00:59:57 · 187 阅读 · 0 评论