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