一、冒泡排序 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。 冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结 ...
分类:
编程语言 时间:
2019-06-18 21:23:30
阅读次数:
145
78.子集 题目描述 给定一组 不含重复元素 的整数数组 nums ,返回该数组所有可能的子集(幂集)。 说明: 解集不能包含重复的子集。 示例: 分析 先对数组中的元素进行排序,然后再用递归分治法进行求解。 贴出代码 java class Solution { public List subset ...
分类:
其他好文 时间:
2019-06-18 10:27:34
阅读次数:
91
基本思想归并排序利用分治法思想,先将一个序列分成一个个子序列,然后对子序列进行排序,再把有序子序列合并为整体有序序列。 两路归并排序算法思路:①把 n 个记录看成 n 个长度为1的有序子表;②进行两两归并使记录关键字有序,得到 n/2 个长度为 2 的有序子表; ③重复第②步直到所有记录归并成一个长 ...
分类:
编程语言 时间:
2019-05-22 19:28:58
阅读次数:
161
排序问题 算法问题的基础问题之一,便是排序问题: 输入:n个数的一个序列,<a1, a2,..., an>。 输出:一个排列<a1',a2', ... , an'>,满足a1' ≤ a2' ≤... ≤ an' 。(输出亦可为降序,左边给出的例子为升序) 一.算法描述 (1)分治法 归并排序是使用到 ...
分类:
编程语言 时间:
2019-05-13 09:17:56
阅读次数:
129
快速排序是数据结构非常经典的一个排序算法,它是在1962年hoare开发的,快速排序用的也是分治的思想。下面来分析一个具体的例子吧。 有这样一个序列,我们用分治法的思想就是要找到一个基准值,进行第一次快速排序之后,这个基准值的左边都比它小,这个基准值的右边都比他的值要大,很显然这个基准值已经将这个序 ...
分类:
编程语言 时间:
2019-05-08 10:58:55
阅读次数:
160
快速排序是数据结构非常经典的一个排序算法,它是在1962年hoare开发的,快速排序用的也是分治的思想。下面来分析一个具体的例子吧。 有这样一个序列,我们用分治法的思想就是要找到一个基准值,进行第一次快速排序之后,这个基准值的左边都比它小,这个基准值的右边都比他的值要大,很显然这个基准值已经将这个序 ...
分类:
编程语言 时间:
2019-05-08 10:57:27
阅读次数:
126
You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality c ...
分类:
其他好文 时间:
2019-04-30 22:04:03
阅读次数:
147
在快速排序中引入递归和分治的概念(关于递归和分治的概念会单独写一篇来进行介绍) 问的解决思路: 快速排序的基本思想本身就是分治法,通过分割,将无序序列分成两部分,其中前一部分的元素值都要小于后一部分的元素值。然后每一部分在各自递归进行上述的过程,直到每一部分的长度都为1为止。 具体的过程就是当前无序 ...
分类:
编程语言 时间:
2019-04-27 00:40:54
阅读次数:
146
归并排序仍然是利用完全二叉树实现,它是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列。 基本过程:假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并 ...
分类:
编程语言 时间:
2019-04-25 14:29:57
阅读次数:
438
问题 一个文件中有9亿条 不重复 的9位整数,对这个文件中数字进行排序 直接想法 9亿条(9e8)数据,每个数据能用int存储 因此所需要内存 9e8 4B = 3.6e9B = 3.6GB ,这是装载所需要的 排序复杂度一般都是nlogn 因此需要的内存更大 方法一 数据库排序 将文本文件导入到数 ...
分类:
编程语言 时间:
2019-04-12 23:19:30
阅读次数:
631