矩阵链乘法问题
给定一个n个矩阵的序列?A1,A2,A3...An?\langle A_1,A_2,A_3...A_n\rangle,我们要计算他们的乘积:A1A2A3...An A_1A_2A_3...A_n,由于矩阵乘法满足结合律,加括号不会影响结果,但是不同的加括号方法,算法复杂度有很大的差别:
考虑矩阵链:?A1,A2,A3?:\langle A_1,A_2,A_3\rangle,三个...
分类:
编程语言 时间:
2015-06-03 15:56:37
阅读次数:
671
这道题即THUSC 2015 t3...只不过数据范围$n, m ≤ 10^5$可以上网查这个鬼畜的东西"Burrows-Wheeler Transform"这道题要用到解压缩也就是IBWT算法,复杂度$O(n + m)$ 1 /***********************************...
分类:
其他好文 时间:
2015-06-02 19:56:35
阅读次数:
126
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。设数组为rotateArray方法1:逐个遍历算法复杂度O(n)方法2:二分查找很...
分类:
编程语言 时间:
2015-05-31 18:12:13
阅读次数:
143
算法复杂度以及稳定性分析算法名称平均时间辅助空间稳定性冒泡排序O(n2)O(1)是选择排序O(n2)O(1)否插入排序O(n2)O(1)是自底向上归并排序O(nlog2n)O(n)是自顶向下归并排序O(nlog2n)O(n)是快速排序O(nlog2n)O(n)否堆排序O(nlog2n)O(1)否基数...
分类:
编程语言 时间:
2015-05-30 00:35:05
阅读次数:
147
基本功:编程风格出错处理算法复杂度分析头文件的作用:通过头文件来调用库功能。在很多场合,源代码不便向用户公布,只要向用户提供头文件和二进制的库即可。头文件相当于向外提供接口。加强类型检查。声明与定义不一致会“警告”。风格问题:一行代码只做一件事,如只定义一个变量,只写一条语句尽可能在定义变量的同时初...
分类:
编程语言 时间:
2015-05-28 00:28:39
阅读次数:
108
1、很容易想到的算法,复杂度为o(n^2) 1 int MaxSegSum1(int n, int *ans) 2 { 3 int sum = 0; 4 5 for(int i = 1; i 0 ? ans[left] : 0; 8 } 9 else10 ...
分类:
其他好文 时间:
2015-05-27 08:33:23
阅读次数:
86
堆排序是利用堆积树这种数据结构设计的一种算法。
要学习堆排序,我们首先要了解什么是二叉堆:
二叉堆是完全二叉树这这是近似完全二叉树。二叉堆可分为两种形式:最大堆和最小堆。
最大堆的性质是指某个结点的值至多与起父结点的值一样大,最小堆的性质就是指某个节点的值都大于其父结点的值。下图是一个最大堆和一个最小堆。
在堆排序中我们一般使用最大堆。我们要进行堆排序,首先需要把我们的数组转化成一个最大堆...
分类:
编程语言 时间:
2015-05-10 10:01:00
阅读次数:
170
问题描述 问题就是询问区间内的最小值。 数据量n, 查询量q。 朴素的算法复杂度O(nq)。 为减少冗余计算,预先计算出每个位置起 2^k 长度范围内的最小值。 data[i][j]表示从 i 起的 2^k 个元素的最小值。 递推式 data[i][j] = min{data[i][j – 1], ...
分类:
编程语言 时间:
2015-05-08 23:33:49
阅读次数:
157
如果考虑暴力解决的话,就每次从前往后扫面,遇到偶数就放在最后,这样时间复杂度就是O(n*n),对于这种问题明显过高了,我们考虑扫描一遍,用两个指针,一个从前往后,另一个从后往前,碰到前偶后奇的时候就交换,这样算法复杂度只有O(n)。#include
#include
void reset(int a[],int n)
{
int i=0,j=n-1,tmp=0;
while(i<j)
{
...
分类:
编程语言 时间:
2015-05-05 21:57:59
阅读次数:
117
算法思想:通过设置一个岗哨,每次跟这个岗哨进行比较,比他小的放在左边,比他大的放在右边。再对岗哨左边的数组0----middle-1,和middle+1-----end,进行同样的排序。算法复杂度:快速排序时间复杂度为O(nlogn),由于是在原数组上面利用替换来实现,因此不需要额外的存储空间。核心...
分类:
编程语言 时间:
2015-05-04 22:02:04
阅读次数:
152