数据结构及算法
道仁
喜欢看书从书中汲取精神食粮,喜欢下象棋,在楚河汉界间发散思维,磨练心智。喜欢听歌,从歌曲中舒缓心情。喜欢运动,从运动中强健体魄。
本着勤奋务实的态度在软件领域顽强拼搏。执着谦虚谨慎的心学习前端软件技术。不断的提升自己,让自己始终保持随时应付工作需要。
展开
-
简单选择排序-------零基础学数据结构
简单选择排序选择排序的基本思想是:从待排序的元素序列中选择关键字最小或最大的元素,将其放在已排序元素序列的最前面或最后面,其余的元素构成新的待排序元素序列,并从待排序元素序列中选择关键字最小的元素,将其放在已排序元素序列的最前面或最后面。依次类推,直到待排序元素序列中没有待排序的元素,选择排序结束。本节的主要学习内容包括两种常用的选择排序:简单选择排序和堆排序。12.3.1 简单选择排序简单转载 2010-05-16 21:06:00 · 1027 阅读 · 0 评论 -
JVM内存模型及垃圾回收机制
JVM内存模型1、栈Java栈是与每一个线程关联的,JVM在创建每一个线程的时候,会分配一定的栈空间给线程。存储局部变量、引用、方法、返回值等。StackOverflowError:如果在线程执行的过程中,栈空间不够用,那么JVM就会抛出此异常,这种情况一般是死递归造成的。2、堆Java中堆是由所有的线程共享的一块内存区域,堆用来保存各种JAVA对象,比如数组,线程对象等。转载 2015-08-26 23:09:31 · 558 阅读 · 0 评论 -
排序算法--从头说12种排序算法:原理、图解、动画视频演示、代码以及笔试面试题目中的应用
0、前言 从这一部分开始直接切入我们计算机互联网笔试面试中的重头戏算法了,初始的想法是找一条主线,比如数据结构或者解题思路方法,将博主见过做过整理过的算法题逐个分析一遍(博主当年自己学算法就是用这种比较笨的刷题学的,囧),不过又想了想,算法这东西,博主自己学的过程中一直深感,基础还是非常重要的,很多难题是基础类数据结构和题目的思想综合发散而来。比如说作为最基本的排序算法就种类很多,转载 2015-03-15 09:55:14 · 2631 阅读 · 1 评论 -
Java实例2 - 冒泡排序 Bubble Sort
[java] view plaincopy/** * 冒泡排序估计是每本算法书籍都会提到的排序方法。 * 它的基本思路是对长度为N的序列,用N趟来将其排成有序序列。 * 第1趟将最大的元素排在序列尾部,第2趟将第2大的元素排在倒数第二的位置, * 即每次把未排好的最大元素冒泡到序列最后端。 * 该排序方法实际上分为两重循环,外层循环:转载 2015-02-26 23:25:49 · 579 阅读 · 0 评论 -
Java实例5 - 考拉兹猜想 Collatz Conjecture
[java] view plaincopy/** * 考拉兹猜想:Collatz Conjecture * 又称为3n+1猜想、冰雹猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想, * 是指对于每一个正整数,如果它是奇数,则对它乘3再加1, * 如果它是偶数,则对它除以2,如此循环,最终都能够得到1。 */ package al转载 2015-02-26 23:43:27 · 2998 阅读 · 0 评论 -
Java实例1 - 朴素字符匹配 Brute Force
[java] view plaincopy/** * 朴素字符串算法通过两层循环来寻找子串, * 好像是一个包含模式的“模板”沿待查文本滑动。 * 算法的思想是:从主串S的第pos个字符起与模式串进行比较, * 匹配不成功时,从主串S的第pos+1个字符重新与模式串进行比较。 * 如果主串S的长度是n,模式串长度是 m,那么Brute-转载 2015-02-26 23:24:44 · 941 阅读 · 0 评论 -
Java实例8 - 插入排序 Insertion Sort
http://blog.csdn.net/kindterry/article/details/6581340[java] view plaincopy/** * 选择排序的思想: * 每次循环前,数组左边都是部分有序的序列, * 然后选择右边待排元素,将其值保存下来 * 依次和左边已经排好的元素比较 *转载 2015-02-26 23:57:21 · 1646 阅读 · 0 评论 -
Java实例3 - 三角数字
[java] view plaincopy/** * 三角数字: * 比达哥斯拉领导下的古希腊数学家发现了一个有趣的数字序列1, 3, 6, 10, 15, 21,... * 你能看出他们有什么规律么? * 对了它的规律就是f(x) = x+ f(x-1) * 想想是不是很像小时候打算盘从1一直加到100啊 */ packa转载 2015-02-26 23:39:42 · 514 阅读 · 0 评论 -
Java实例7 - 选择排序 Selection Sort
[java] view plaincopy/** * 选择排序的思想: * 每次从待排序列中找到最小的元素, * 然后将其放到待排的序列的最左边,直到所有元素有序 * * 选择排序改进了冒泡排序,将交换次数从O(N^2)减少到O(N) * 不过比较次数还是O(N) */ package al; pu转载 2015-02-26 23:53:28 · 809 阅读 · 0 评论 -
Java实例6 - 汉诺塔问题 Hanoi
[java] view plaincopy/** * 汉诺塔大学的时候就学过,但是根本没搞明白,唯一知道的就是要用递归的方法来求解。 * 问题描述: * 有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。 * 要求按下列规则将所有圆盘移至C杆: * 1.每次只能移动一个圆盘; * 2.大盘不能叠在小盘转载 2015-02-26 23:47:33 · 813 阅读 · 0 评论 -
Java实例4 - 快速计算二进制数中1的个数(Fast Bit Counting)
[java] view plaincopy/** * 快速计算二进制数中1的个数(Fast Bit Counting) * 该算法的思想如下: * 每次将该数与该数减一后的数值相与,从而将最右边的一位1消掉 * 直到该数为0 * 中间循环的次数即为其中1的个数 * 例如给定"10100“,减一后为”10011",相与为"10000转载 2015-02-26 23:39:52 · 905 阅读 · 0 评论 -
KMP字符串模式匹配
KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一.简单匹配算法/** * 1. 普通算法 * 从字符数组S中找到与字符数组T匹配的起始字符的下标索引值 * @param S * 预查找的源字符串数组 * @param原创 2013-05-03 18:45:41 · 575 阅读 · 0 评论 -
oracle 索引的缺点和优点
以下的文章主要是对Oracle数据库索引的优点与缺点的介绍,如果你对Oracle数据库索引的优点与缺点想有所了解的话,你可以通过以下的文章对其的实际应用与功能有所了解,以下是文章的具体介绍。 数据库的索引分为:聚集索引,非聚集索引,唯一索引。 优点:方便了查询,在数据量大时排序更易查询 缺点:查询时需要进行重新排序,减少了效率。物理索引缺点 建立索引效率低,只能建一个转载 2015-08-30 11:43:49 · 723 阅读 · 0 评论