算法
文章平均质量分 70
明耀先森
乐观,开朗,喜欢编码
展开
-
兔子问题(斐波那契数列)
有这样一个有趣的“兔子问题”:“假定一对大兔子每月能生一对小兔子,且每对新生的小兔子经过一个月可以长成一对大兔子,具备繁殖能力,如果不发生死亡,且每次均生下一雌一雄,问一年后共有多少对兔子?”分析:第一个月兔子没有繁殖能力,所以还是一对;两个月后生下一对兔子,共有两对;三个月后,老兔子生下一对,小兔子还没有繁殖能力,所以一共是三对,以此类推,可以列出下表表中1,1,2,3,5,8,原创 2015-08-30 17:07:57 · 18974 阅读 · 0 评论 -
冒泡排序
/*冒泡排序基本思想:把记录当作一个纵向排列,每趟排序自底向上排列,每次进行相邻比较,如果第上面的数比下面的大,就调换位置,每趟排序都会使排序范围内最小的数像旗袍一样上浮到对应的位置. 初态 第1趟 第2趟 第3趟 第4趟 第5趟 第6趟 第7趟 38 12 12 12 12 12 12原创 2015-08-16 17:46:27 · 762 阅读 · 0 评论 -
选择排序
选择排序:和冒泡排序的比较选择排序是一种和冒泡排序很相似的排序方法,冒泡排序是通过两两比较,不断调换,逐个推进进行排序的,两两比较,和两两调换都是比较费时的,选择排序可以说是冒泡排序的一种改进.冒泡排序每趟遍历比较的目的是要找出最小值,但是过程中很多交换都是无价值的交换,很浪费时间.所以选择排序的做法是:每次遍历,只选择最值元素进行交换,这样一次遍历,只需进行一次交换即可,从而避免了其它无原创 2015-08-17 14:27:59 · 828 阅读 · 0 评论 -
归并排序
归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序的基本思想将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2原创 2015-08-18 09:13:35 · 634 阅读 · 0 评论 -
直接插入排序
直接插入排序:算法步骤:1)将第一待排序列第一个元素看作第一个有序序列,吧第二个元素到最后一个元素当成是未排序序列.2)从头到位一次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置.(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面)算法示意图:算法实现:public class InsertSort { voi原创 2015-08-17 16:34:41 · 581 阅读 · 0 评论 -
快速排序
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。该方法的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。 虽然原创 2015-09-07 19:59:38 · 510 阅读 · 0 评论