题目输入一个特定整数s和一组整数,要求从这组整数中找到四个数a,b,c,d,使a+b+c+d=s。按照升序排列,输出所有满足条件的a,b,c,d。具体格式如下:输入0
1 0 -1 0 -2 2输出-2 -1 1 2
-2 0 0 2
-1 0 0 1分析先排序,可以用hashmap缓存两个数的和,然后左右夹逼,时间复杂度O(n^2),空间复杂度O(n^2)代码#include ...
分类:
其他好文 时间:
2016-05-25 09:33:45
阅读次数:
343
在上一篇博客中,主要是实现各种的排序算法,并针对一些算法进行了优化的处理,下面主要讨论一下非比较排序的算法(计数排序、基数排序),同时并对各种排序算法的性能、时间复杂度、空间复杂度、优缺点、以及适用场景做总结分析。1.计数排序主要思想:主要是需要统计次数,使..
分类:
编程语言 时间:
2016-05-23 19:34:01
阅读次数:
230
基数排序与基数排序是两种非比较型排序。计数排序:
//************计数排序*********
//先最大-最小+1得到开辟空间数,开辟空间str,在遍历原数据arr在str相应位置计数,再遍历str将值写到原arr中
//适用在密集型数据,无重复最优可转化为位图
//时间复杂度O(N),空间复杂度O(..
分类:
编程语言 时间:
2016-05-22 18:37:27
阅读次数:
248
关于二分查找法在学习算法的过程中,我们除了要了解某个算法的基本原理、实现方式,更重要的一个环节是分析算法的复杂度。在时间复杂度和空间复杂度之间,我们又会更注重时间复杂度,往往用牺牲空间换时间的方法提高时间效率。时间复杂度按优劣排差不多集中在:O(1),O(logn),O(..
分类:
编程语言 时间:
2016-05-22 00:58:22
阅读次数:
557
九大基础排序算法小结
一直想做份总结,总是抽不出时间,趁着周末闲着直接用了一整天做一份,一些内容参考了网上的一些博主的总结,还有网络上的一些图片。
好了,接下来就看看内容吧!
排序算法:
排序方法
时间复杂度
空间复杂度
稳定性
选用情况
平均情况
最坏情况
最好情况
...
分类:
编程语言 时间:
2016-05-21 17:43:59
阅读次数:
250
时间复杂度 时间复杂度简单的理解就是执行语句的条数。如果有循环和递归,则忽略简单语句,直接算循环和递归的语句执行次数。 比如: [java] view plain copy int x = 1;//时间复杂度为O(1) for(int i=0; i<n; i++) { System.out.prin ...
分类:
其他好文 时间:
2016-05-18 21:15:38
阅读次数:
180
引言
常用的算法的时间复杂度和空间复杂度
排序法
最差时间分析
平均时间复杂度
稳定度
空间复杂度
冒泡排序
O(n2)
O(n2)
稳定
O(1)
快速排序
O(n2)
O(n*log2n)
不稳定
O(log2n)~O(...
分类:
编程语言 时间:
2016-05-18 18:54:12
阅读次数:
260
s11d27 算法 一、理论 1.1 时间复杂度和空间复杂度的理论: 1)空间复杂度: 是程序运行所以需要的额外消耗存储空间,一般的递归算法就要有o(n)的空间复杂度了, 简单说就是递归集算时通常是反复调用同一个方法,递归n次,就需要n个空间。 2)时间复杂度 一个算法花费的时间与算法中语句的执行次 ...
分类:
编程语言 时间:
2016-05-17 13:04:33
阅读次数:
233
算法是处理问题的步骤(就像错菜的菜谱)算法的时间复杂度和空间复杂度合成为算法的复杂度时间复杂度首先提到一个时间频度T(n),一个算法中语句的执行次数称为时间频度也叫语句频度。一个算法执行所耗费的时间,理论上说是能算出来的,必须上级测试才可以得到,但是没必要对所..
分类:
编程语言 时间:
2016-05-17 11:50:57
阅读次数:
230
直接选择排序:
原理:每次从未排序的序列中找到最小值,记录并最后存放到已排序序列的结尾
性能:时间复杂度为O(N^2)空间复杂度为O(1),排序是不稳定的(把最小值交换到已排序的结尾导致的),每次都能确定一个元素所在的最终位置,比较次数与初始序列无关。
void select_sort(int value[], int length)
{
int i,j;
...
分类:
编程语言 时间:
2016-05-16 11:09:30
阅读次数:
264