![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 69
rik_csdn
这个作者很懒,什么都没留下…
展开
-
【剑指Offer】二维数组中的查找
转自:http://liuqing-2010-07.iteye.com/blog/1330830 1.1. 问题描述 在一个二维整数数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回转载 2015-08-31 22:38:09 · 274 阅读 · 0 评论 -
开灯问题
1.1. 问题描述 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯被打开,开着灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着? 1.2. 问题分析 题目并没有什么难度,构建一个布尔数组,遍历灯与人即可。 1.3. 代码 i原创 2016-09-05 11:18:12 · 409 阅读 · 0 评论 -
内部排序算法之一【冒泡排序】
1.1. 基本描述 元素个数为n的数组,需要按照由小到大的顺序进行元素排序。 1.2. 算法分析 冒泡排序的基本思想:从第n个元素开始,依次与第n-1、n-2……1个元素进行大小比较,通过比较与交换,使得第k趟排序后,数组的前k个数组达到有序。容易得到,时间复杂度为O(n^2),是稳定排序。 1.3.原创 2016-09-13 15:55:53 · 199 阅读 · 0 评论 -
内部排序算法之四【直接插入排序】
1.1. 基本描述 元素个数为n的数组,需要按照由小到大的顺序进行元素排序。 1.2. 算法分析 插入排序的基本思想:将数组看成已排序与未排序两个部分,依次将未排序的元素插入到已排序部分的合适位置,插入新元素需要将插入位置之后的元素依次后移。最好情况下(数组升序),时间复杂度为O(n);最坏情况下(数组降序),时间复杂度为O(n^2);平均时间复原创 2016-12-14 14:14:58 · 238 阅读 · 0 评论 -
内部排序算法之二【改进的冒泡算法,鸡尾酒算法】
1.1. 基本描述 元素个数为n的数组,需要按照由小到大的顺序进行元素排序。 1.2. 算法分析 鸡尾酒排序的基本思想:将冒泡排序的单向循环改进为双向循环。对比冒泡排序,在某些情况下排序效率会好一些,最坏情况下跟冒泡排序一样,但时间复杂度也为O(n^2),是稳定排序。 1.3. 代码实现 public class Cock原创 2016-12-13 17:54:35 · 231 阅读 · 0 评论 -
内部排序算法之三【选择排序】
1.1. 基本描述 元素个数为n的数组,需要按照由小到大的顺序进行元素排序。 1.2. 算法分析 选择排序的基本思想:每一趟排序从未排好序的部分元素中选择一个值最小的元素,然后将其与这些未排好序的元素的第一个元素交换位置。容易发现,时间复杂度为O(n^2),是不稳定排序。 1.3. 代码实现 public cl原创 2016-12-13 19:45:08 · 207 阅读 · 0 评论 -
内部排序算法之五【二分插入算法】
1.1. 基本描述 元素个数为n的数组,需要按照由小到大的顺序进行元素排序。 1.2. 算法分析 二分插入排序的基本思想:将数组看成已排序与未排序两个部分,依次将未排序的元素插入到已排序部分的合适位置,插入新元素需要将插入位置之后的元素依次后移。作为直接插入排序算法的优化,在需排序元素个数n较大时,二分插入排序需比较的次数比直接插入排序的最好情况原创 2016-12-16 14:23:07 · 805 阅读 · 0 评论