随笔分类 -  算法

摘要:二分查找法与我们在孩童时期玩过的猜数的游戏一样,这个游戏里一个朋友会让你猜他正想的一个1至100的数,当你猜了一个数后,他会告诉你三种选择的一个:你猜的比她想的大,或小,或猜中了。为了能用最少的次数猜中,必须从50开始猜,如果她说你猜的太小,则推出那个数在51-100之间,所以下一次猜75((51... 阅读全文
posted @ 2014-08-07 10:19 积淀 阅读(513) 评论(0) 推荐(0)
摘要://十进制的数转化为二进制 public static void toBin(int num){ if(num > 0){ toBin(num/2); System.out.println(num%2); } } 以上面的十进制转化为二进制为例:传参数传入6,把6转化为二进制:使用递归... 阅读全文
posted @ 2014-07-21 22:00 积淀 阅读(419) 评论(0) 推荐(0)
摘要:转载:http://www.cnblogs.com/wangfupeng1988/archive/2011/12/26/2302216.html1 快速排序介绍: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但... 阅读全文
posted @ 2014-07-02 11:32 积淀 阅读(228) 评论(0) 推荐(0)
摘要:交换类排序:冒泡排序和快速排序选着类排序:直接选择排序和堆排序。归并类排序:二路归并排序一.排序稳定性:(1)稳定的排序:1.冒泡排序2.直接插入排序3归并排序4.基数排序(2)不稳定的排序:1.希尔排序2.选择排序3.快速排序4.堆排序记忆:心情"不稳定","快"些"选"一"堆"好友来聊天吧。二.... 阅读全文
posted @ 2012-10-09 15:54 积淀 阅读(905) 评论(0) 推荐(0)
摘要:排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。 我不喜欢死记硬背,我更偏向于弄清来龙去脉,理解性地记忆。比如下面这张图,我们将围绕这张图来思考几个问题。 上面的这张图来自一个PPT。它概括了数据结构中的所有常见的排序算法。现在有以下几个问题: 1、每个算法的思想是什么? 2、每个算法的稳定性怎样?时间复杂度是多少? 3、在什么情况下,算法出现最好情况 or 最坏情况? 4、每种算法的具体实现又是怎样的? 这个是排序... 阅读全文
posted @ 2012-09-25 22:38 积淀 阅读(324) 评论(0) 推荐(0)
摘要:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回true;如果查找数字5,由于数组不含有该数字,则返回false。我的解题思路是这样的矩阵行列都是从小到大排好序的,要查找的话自然用二分效率比较高,而且这样的矩阵有个性质,最左上角的元素必定是最小值,最右下角的是最大值,在一个n*n的矩阵中,对角线的元素也是排好序的,找到对角线上的一个元素,使得这个元素小于待查找的key,并且下一元素大于待查找的key, 阅读全文
posted @ 2012-09-23 00:45 积淀 阅读(788) 评论(0) 推荐(0)