1、快速排序
通过选择轴值,一次划分都能确定该轴值得位置,其时间复杂度最好的情况(每次划分都恰好将区间平分为等长的两半)下为Ο(nlgn),最差情况(每次划分将区间分成0与n-1)为O(n^2)。其空间复杂度考虑递归的栈深为O(lgn)。
1 /********************...
分类:
其他好文 时间:
2014-05-16 19:24:46
阅读次数:
361
我们先把数组中的整数转换成字符串,在函数compare中定义比较规则,并根据该规则用库函数qsort排列。最后把排序好的数组中的数字依次打印出来,就是该数组中数字拼接出来的最小数字。这种思路的时间复杂度是O(nlogn)。
分类:
其他好文 时间:
2014-05-16 09:22:04
阅读次数:
262
题目: Sort a linked list inO(nlogn) time using
constant space complexity.解题思路: 复杂度为O(n* logn)
的排序算法有:快速排序、堆排序、归并排序。对于链表这种数据结构,使用归并排序比较靠谱。递归代码如下:代码: /...
分类:
其他好文 时间:
2014-05-16 05:49:04
阅读次数:
266
SDUT集训计划假设已有C/C++/JAVA中任何一门程序设计语言基础,熟练掌握基本语法。Step1:入门hdu——water~,刷完Step2:数据结构——课本算法代码熟敲。数据结构需要掌握的内容(数据结构C语言版严蔚敏|吴伟民):第1章绪论算法和算法分析(时间复杂度分析和空间复杂度分析)第2章线...
分类:
其他好文 时间:
2014-05-16 05:25:47
阅读次数:
371
1.排序的分类在待排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的;若具有相同关键字的记录之间的相对次序发生变化,则称这种排序方法是不稳定的。稳定的排序时间复杂度
空间复杂度冒泡排序最差和平均是O(n2),最好是O(n) 1双向....
分类:
其他好文 时间:
2014-05-15 16:54:49
阅读次数:
297
题意:在一个二维矩阵中找到给定的值。矩阵从上到下从左到右有序
思路:二维空间的二分查找
先在一维里找中间位置,再将该位置转为二维空间里的下标
注:下标比较难弄,得注意点
复杂度: 时间O(log n),空间O(1)
相关题目:
Search Insert Position...
分类:
其他好文 时间:
2014-05-15 07:24:42
阅读次数:
253
题意:去掉已排序的链表里重复的元素
思路:
1.遍历链表,用一个变量保存当前链表节点的值
2.如果当前链表节点值与前面的一样,则删除当前链表节点
3.否则用当前节点值更新该变量
复杂度:时间O(n), 空间O(1)...
分类:
其他好文 时间:
2014-05-15 06:46:24
阅读次数:
218
有时一个互斥量是不够的:
比如:
当多个线程同时访问一个队列结构时,你需要2个互斥量,一个用来保护队列头,一个用来保护队列元素内的数据。
当为多线程建立一个树结构时,你可能需要为每个节点设置一个互斥量。
同时使用多个互斥量会导致复杂度的增加
最坏的情况就是死锁的发生,即两个线程分别锁住一个互斥量而等待对方的互斥量。
多互斥量可能导致死锁:
如果...
分类:
编程语言 时间:
2014-05-13 16:32:03
阅读次数:
533
建堆的时间复杂度是O(n),堆排序的时间复杂度是O(NLogN),具体算法如下所示:
#include
using namespace std;
void swap(int &i,int &j)
{
int temp=i;
i=j;
j=temp;
}
void shiftDown(int *A, int start,int len)
{
int temp=A[...
分类:
其他好文 时间:
2014-05-13 13:55:15
阅读次数:
270
撸了一下Poi 2014
,看了一下网上题解不多,所以决定写一下。有的题应该是数据不强水过去了,等北京回来在写一下复杂度比较靠谱的代码 o(╯□╰)o第一题:
题意是给定一个长度不大于1000000,只包括p和j的串,求一个最长的子串,要求子串任何一个前缀和后缀都满足p的数量不少于j的数量。 首.....
分类:
其他好文 时间:
2014-05-13 10:22:39
阅读次数:
332