- 博客(15)
- 资源 (4)
- 收藏
- 关注
原创 排序算法之——基数排序(Java实现)
今天,我来讲一讲基数排序。基数排序是一种用在老式穿卡机上的算法。一张卡片有80列,每一列可以在12个位置中的任一处穿孔。排序器可以被机械地“程序化”,以便对一叠卡片中的每一列进行检查,再根据穿孔的位置将它们放入12个盒子里。这样,操作员就可以逐个地将它们收集起来,其中第一个位置穿孔的放在最上面,第二个其次,等等。对于十进制数字来说,每列中只用到10个位置(另两个位置用于编码非数值字符)。一个d位数
2016-09-17 11:41:03 862
原创 排序算法之——计数排序(Java实现)
今天,我来讲一讲计数排序。技术排序与堆排序快速排序等排序不同,它是一种非比较排序,已经有人证明过,比较排序的时间下界是Ω(nlogn),但这个性质是不适用于计数排序的,因为它不是比较排序。他的时间是线性的。 计数排序假设n个输入,每个都是介于0到k的整数。计数排序的基本思想是对每一个输入元素x,确定出小于x的元素个数。有了这一信息,直接x放到对应的位置上就行了。比如说有5个元素小于
2016-09-17 10:27:54 2350 1
原创 排序算法之——合并排序/归并排序(Java实现)
今天,来讲一讲合并排序,其实我已经写了 堆排序 和 快速排序,本来都不想写这个,但是,当我发现我身边很多人竟然都不知道这个排序的时候,我震惊了,毕竟,这是一个经典的入门算法(反正外国貌似是这样的,根据我看的书和视频),历史也十分悠久。下面就来讲讲这历史悠久的算法。 合并排序是一种典型的分治法算法。先把数组拆成两个数组,对两个数组进行继续拆分,直到能够对拆分后的两个结果分别进行排序
2016-09-10 14:58:35 2427 1
原创 KaraTsuba乘法——高效的大数乘法
今天看Coursera课程时,看到一个牛逼的算法,叫KaraTsuba乘法。普通乘法复杂度一般都是O(n^2),而这个算法,仅有O(nlog3)。下面,我就来介绍一下这个算法。 首先来看看这个算法是怎么进行计算的,见下图:图中显示了计算5678*1234的过程,首先是拆分成abcd四个部分,然后分别计算ac, bd, (a + b)*(c+d),最后再用第三个算式的结果减去前
2016-09-10 13:29:29 5688 6
原创 leetcode-17. Letter Combinations of a Phone Number
Given a digit string, return all possible letter combinations that the number could represent.A mapping of digit to letters (just like on the telephone buttons) is given below.Input:Digit st
2016-09-09 17:43:07 405
原创 leetcode-6. ZigZag Conversion
The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P A H NA P L S I
2016-09-09 17:14:30 381
原创 leetcode-52. N-Queens II
Follow up for N-Queens problem.Now, instead outputting board configurations, return the total number of distinct solutions.题意解析:好吧这题和N-Queens一样,甚至还简单了,思路可以参考我之前写的这篇博客leetcode-51. N-Que
2016-09-09 17:05:59 359
原创 leetcode-51. N-Queens
The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.Given an integer n, return all distinct solutions to the n-queens puzzle.
2016-09-09 15:30:36 389
转载 深入理解 AngularJS 的 Scope
本文源地址链接:http://www.lovelucy.info/understanding-scopes-in-angularjs.html本文作者:lovelucy声明:本文为转载,请尊重原创,如您也需要转载,请注明源地址,而不要注明我的博客地址,谢谢。一、遇到的问题问题发生在使用 AngularJS 嵌套 Controller 的时候。因为每个 Control
2016-09-09 13:11:47 292
原创 排序算法之——快速排序(Java实现)
排序算法有很多,今天我来讲一讲其中实用性最强的一种算法——快速排序。 为什么说它实用性最强呢?因为快速排序的平均性能非常好,虽然它的最坏运行时间为O(n^2),但是平均运行时间是O(nlgn),而且里面隐含的常数因子很小。而且它是原地排序的,所谓原地排序,就是不需要开辟新的数组空间,就可以进行排序。 快速排序基于分治模式,所谓分治模式,就是把问题拆成一个个小问题
2016-09-08 20:35:29 482 1
原创 堆的应用——优先级队列
接上文:堆排序Heap Sort——浅显易懂+Java实现 堆分最小堆最大堆,优先级队列也分最小优先级队列和最大优先级队列。先来介绍一下优先级队列: 优先级队列是用来维护由一组元素构成的集合S的数据结构,这一组元素中的每一个都有一个关键字key,一个最大优先级队列支持以下操作: Insert(S, x):把元素x插入S中 Ma
2016-09-06 22:12:34 418
原创 堆排序Heap Sort——浅显易懂+Java实现
最近在恶补一些计算机基础内容,看到了堆排序,想想以前常说堆栈堆栈,但我竟然连堆有哪些应用都记不得了,所以,重温了堆排序后,我来给大家分享一下,希望能对大家有所帮助。(代码实现不采用伪代码,使用java实现,毕竟来看博客的都不想和看书一样把) 首先,堆是一种数据结构,你可以把他看成一颗完全二叉树,如下图所示:圆圈上方的数字代表下标:他的特性就是:父结点的值要大于两个儿子结点的值。
2016-09-05 20:20:23 1317
原创 如何使用IntelliJ Idea创建一个分模块Maven+Web项目
所谓多层Maven项目,就是整个Project是Maven构建的,然后里面每个module也是Maven构建的。module的Maven会继承Project的Maven。 下面我就来演示一下如何使用IntelliJ Idea创建一个像下面这样结构的Maven项目:首先,创建一个新项目:这边请不要选择任何模版,直接点击下一步即可。GroupId填写你
2016-09-02 23:58:52 8052 1
原创 使用Mybatis动态sql简化开发
最近爱上了Mybatis,因为他的动态sql,因为他的轻量,因为开发很敏捷。依赖Mybaits,你可以少写很多Service接口。今天,就来给大家分享一下。 项目使用Maven构建。主要是因为github不推荐传jar包,而且非maven项目会因为IDE之间的差异而导致打不开别人的项目,比如我IntelliJ创建的项目,你Eclipse无法导入。如果实在对maven不了解也不想了
2016-09-02 23:57:31 523
原创 leetcode-66. Plus One
Given a non-negative number represented as an array of digits, plus one to the number.The digits are stored such that the most significant digit is at the head of the list.题意解析:这题就是给你一个数字,
2016-09-02 00:34:46 295
网站前端帮助文档大全
2016-01-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人