
算法
文章平均质量分 86
一些算法解题
寻道的 Programmer
无根浮盈空欢喜,未悟真经套中人
展开
-
基础算法(一)
最近看了《Java编程那些事》博客专栏,在讲到Java流程控制那块,提到了很多自己当初学习过程中涉及到的小算法,都很经典,以后会不断的将接触到的算法更新到本博文中,供自己以后查看,也可以作为大家学习的一个小资料。1. 最大公约数 问题:求两个自然数的最大公约数。 这两个都是基础的数学问题,最大公约数指两个数字公共的约数中最大的,例如数字6的约数有1、2、3、6,原创 2012-03-14 22:09:15 · 13035 阅读 · 12 评论 -
基础算法(二)
上一篇:基础算法(一) 1. 冒泡排序(BubbleSort) 原理:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由原创 2012-03-30 12:12:24 · 4906 阅读 · 5 评论 -
Collections.sort in JDK6:MergeSort
本文是对JDK6中Collections.sort方法的源码解析,也可以看作是对Comparison method violates its general contract!的后续分析。在JDK6中,该方法底层使用的是经过优化后的归并排序,废话不多说,直接看源码。public static void sort(List list, Comparator c) { Object[] a = l原创 2015-01-02 14:01:41 · 4794 阅读 · 1 评论 -
求素数个数
我最近在leetcode上撸了一个小算法,虽然已经工作了五年,当看到每次代码提交后排名的提升,内心依然很有成就感。题目比较简单,求小于n的素数个数,素数也叫质数,具有以下特点:正整数只能被1和本身整除1既不是素数也不是合数,所以最小的素数是2根据上面的特点,我们还可以推断出:除了2,其它的素数都是奇数依据这一点,我们可以写出下面的实现:class Solution { publi原创 2017-12-10 22:20:17 · 12871 阅读 · 3 评论 -
求编辑距离
定义编辑距离又称Leveinshtein距离,是由俄罗斯科学家Vladimir Levenshtein在1965年提出。编辑距离是计算两个文本相似度的算法之一,以字符串为例,字符串a和字符串b的编辑距离是将a转换成b的最小操作次数,这里的操作包括三种:插入一个字符删除一个字符替换一个字符举个例子,kitten和sitting的编辑距离是3,kitten -> sitten(k替原创 2017-12-26 15:50:08 · 7515 阅读 · 4 评论