码迷,mamicode.com
首页 >  
搜索关键字:空间复杂度    ( 2067个结果
用Java来写常见的排序算法
随着校招的临近 算法是校招中很重要的一个部分 总结了常见几种排序算法,各种算法的时间复杂度和空间复杂度大家也需要多了解下 package com.huwei.sort;/** * 各种排序算法 * * @author huwei * */public class Sort { public...
分类:编程语言   时间:2014-07-14 00:59:09    阅读次数:231
计数排序、桶排序python实现
计数排序在输入n个0到k之间的整数时,时间复杂度最好情况下为O(n+k),最坏情况下为O(n+k),平均情况为O(n+k),空间复杂度为O(n+k),计数排序是稳定的排序。 桶排序在输入N个数据有M个桶时,如果每个桶的数据接近N/M个且桶内使用基于比较的排序,则桶排序的时间复杂度为O(N+M*N/M*log(N/M)).如果N=M时,每个桶只有一个数据,时间复杂度降低为O(N). 桶排序的时间...
分类:编程语言   时间:2014-07-13 17:19:49    阅读次数:215
编程算法 - 圆圈中最后剩下的数字(循环链表) 代码(C++)
圆圈中最后剩下的数字(循环链表) 代码(C++)本文地址: http://blog.csdn.net/caroline_wendy题目: 0,1...,n-1这n个数字排成一个圆圈, 从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里最后剩下的数字.使用循环链表, 依次遍历删除, 时间复杂度O(mn), 空间复杂度O(n).代码:/* * main.cpp * * Created ...
分类:编程语言   时间:2014-07-13 16:15:24    阅读次数:226
算法整理(三):插入排序
插入排序很简单,就像打扑克。手里有个牌4,再来一张牌5就本能的放到第一个牌的右边。如果来了个3就从右往左扫描,只要左边的比这个待插入数字大就交换。 插入排序是一种稳定的排序方法,时间复杂度O(n*n),空间复杂度O(1),最好的情况下时间复杂度为O(1).即本来就是一个有序或者相等的数组,则只需比较n-1次即可。下为源码,只需三行代码即可。//===========================...
分类:其他好文   时间:2014-07-11 08:35:55    阅读次数:162
计数排序、基数排序与桶排序
一、计数排序 稳定、 当输入的元素是n 个小区间(0到k)内整数时,它的运行时间是 O(n + k),空间复杂度是O(n)。 const int K = 100; //计数排序:假设输入数据都属于一个小区间内的整数,可用于解决如年龄排序类的问题 //Input:A[0, ..., n-1], 0 <= A[i] < K //Output:B[0, ..., n-1], sorting of A...
分类:其他好文   时间:2014-07-08 21:24:36    阅读次数:232
【LeetCode】Linked List Cycle
题目 Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without using extra space? 解答 首先要注意空链表不成环;不能开额外的空间,即空间复杂度是o(1),可采用“快慢指针”查检查链表是否含有环,如果在快的指针能够追上慢的指针,则有环,否...
分类:其他好文   时间:2014-07-08 19:17:47    阅读次数:160
直接插入排序、二分插入排序、希尔排序、冒泡排序与简单选择排序
一、直接插入排序 稳定,时间复杂度:最好O(n)、最差O(n^2)、平均O(n^2),空间复杂度O(1) void InsertSort(int L[], int n) { int i, j,key; for (i = 1; i<n; i++) if(L[i] < L[i-1])//需要将L[i]插入到有序表L[0...i-1] { key = L[i];...
分类:其他好文   时间:2014-07-08 13:40:33    阅读次数:137
codility上的问题 (36)Natrium 2014
这个题比较简单,好像也比较old,给定一个整数数组A,有N个元素,找到所有下标对(P,Q)满足  0 ≤ P ≤ Q 数据范围N [1..3*10^5]数组元素[-10^9, +10^9]要求时间复杂度O(N),空间复杂度O(N)。分析: 如果b[i] = max{a[i..N - 1]} ,则对每个i,我们找到最大的j,满足b[j]>=a[i],就可以了。这样做的目的是b,反映了后面还有没有比a...
分类:其他好文   时间:2014-07-06 08:30:20    阅读次数:179
插入排序(insertion-sort)
作为排序算法的一种,插入排序是稳定排序。它的时间复杂度:O(n*n),空间复杂度为:O(1)。最好的时间复杂度为:O(n),最坏和平均则为:O(n*n)。 算法的思想:给定一组无序的数组,我们从它的第二个数开始,并将它赋值给mark变量,让mark和它前面的一个数作大小比较,若小于前面的那个...
分类:其他好文   时间:2014-07-04 00:15:22    阅读次数:296
计数排序(counting-sort)
计数排序是一种稳定的排序算法,它不是比较排序。计数排序是有条件限制的:排序的数必须是n个0到k的数,所以计数排序不适合给字母排序。计数排序时间复杂度:O(n+k),空间复杂度:O(k),当k=n时,时间复杂度可以达到O(n)。计数排序思想:给定一个符合规定的无序数组,先求出这个数组中最大的数,...
分类:其他好文   时间:2014-07-04 00:00:59    阅读次数:271
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!