数据结构与算法
LuckyBrown17
这个作者很懒,什么都没留下…
展开
-
图解插入排序--直接插入排序
排序思路:每次将一个待排序的元素与已排序的元素进行逐一比较,直到找到合适的位置按大小插入。第一趟比较示图:算法实现: public static void insertsort(int arr[]){ for(int i = 1;i < arr.length; i ++){ if(arr[i] < arr[i-1]){/原创 2017-03-10 14:43:07 · 268 阅读 · 0 评论 -
详细解读KMP模式匹配算法
详细解读KMP模式匹配算法 目录(?)[+]朴素的模式匹配算法KMP模式匹配算法求解next数组KMP算法优化转载请注明出处:http://blog.csdn.net/fightlei/article/details/52712461首先我们需要了解什么是模式匹配?子串定位运算又称为模式匹配(Pattern Matching)或串转载 2017-08-23 10:31:14 · 390 阅读 · 0 评论 -
剑指Offer——编程题的Java实现(更新完毕……)
二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。[java] view plain copy print? /* * 思路 矩阵是有序的,从右上角来看,向左数字递减,向下数字递增, * 因此从右上角开始查找,当要查找数字比左下角数字大时。下移 *原创 2017-08-05 10:15:04 · 3213 阅读 · 1 评论 -
TreeMap
原文出自:http://cmsblogs.com/?p=1013。尊重作者的成果,转载请注明出处! 个人站点:http://cmsblogs.com—————————————————————————————————————————————————————————- TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:转载 2017-04-19 09:25:24 · 338 阅读 · 0 评论 -
数据结构 – 树的度和结点数的关系
1: 二叉树叶子节点与度为二的节点有什么关系?叶子结点就是没有孩子的结点,其度为0,度为二的结点是指有两个子数的结点。比如一棵完全二叉树有三层,叶子结点就是最下面那一层的结点数,没有孩子结点,就是4,度为二的结点有3个。一、概念与图论中的“度”不同,树的度是如下定义的:有根树T中,结点x的子女数目称为x的度。也就是:在树中,结点有几个分叉,度就是几。一个有用的小公式:树转载 2017-03-27 09:47:52 · 31787 阅读 · 0 评论 -
GIF演示排序算法
最近在准备笔试,面试,看了不少关于排序算法的知识,总感觉代码有余,直观不足。 所以想利用直观的GIF动图来演示各种排序算法。1.插入排序(Insertion Sort)1.1算法简介插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序转载 2017-04-11 15:33:21 · 6381 阅读 · 2 评论 -
java 实现节点链表
链结点 在链表中,每个数据项都被包含在‘点“中,一个点是某个类的对象,这个类可认叫做 LINK。因为一个链表中有许多类似的链结点,所以有必要用一个不同于链表的类来表达 链结点。每个 LINK 对象中都包含一个对下一个点引用的字段(通常叫做 next)但是 本身的对象中有一个字段指向对第一个链结点的引用 单链表是一种顺序存取的结构,为找第 i个数据元素,必须先找到第转载 2017-03-11 19:32:57 · 373 阅读 · 0 评论 -
数据结构之冒泡排序
数据结构之冒泡排序 排序思路:整个算法从最下面的元素开始,对相邻的元素进行比较,经过交换使得较小的元素在较大的元素之上,经过对每个元素的两两比较,最后最小的元素被移到前面的位置。算法实现:public class BubbleSort { public static void bubbleSort(int arr原创 2017-03-10 21:08:45 · 311 阅读 · 0 评论 -
图解快速排序
快速排序是冒泡排序的改进版,也是最好的一种内排序,在很多面试题中都会出现,也是作为程序员必须掌握的一种排序方法。思想:1.在待排序的元素任取一个元素作为基准(通常选第一个元素,但最的选择方法是从待排序元素中随机选取一个作为基准),称为基准元素; 2.将待排序的元素进行分区,比基准元素大的元素放在它的右边,比其小的放在它的左边; 3.对左右两个分区重复以上步骤直到所有元素原创 2017-03-10 16:06:30 · 266 阅读 · 0 评论 -
汉诺塔问题 java实现
汉诺塔问题[又称河内塔]是印度的一个古老的传说。 据传开天辟地之神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。就是这看似简单的问题,却困扰了人们千年以上。 后来,这个传说就演变为原创 2017-10-01 18:31:42 · 1634 阅读 · 0 评论