算法复杂度用来表示在解决某个问题时,算法的性能表现。
复杂度上限,就是某个具体的已经实现的算法能够保证在一定时间内解决问题
复杂度下限,就是通过数学方法证明,所有的算法都必须花费一定的时间才能解决问题
最优化算法,就是可能达到的最小复杂度的算法,通常介于复杂度上限和下限之间
比如排序问题中:
计算模型为决策树
使用比较次数作为开销...
分类:
其他好文 时间:
2014-06-08 18:20:02
阅读次数:
190
首先从磁盘结构讲起。按结构从小到大区分:
扇区,固定512字节磁道柱面,分区时的最小单位,开始柱面到结束柱面为一个分区
第一个扇区很重要,它包括:
主引导分区MBR(446字节),内含引导加载程序Boot loader。它有如下功能:
提供菜单:可选择不同的系统进行加载,多操作系统的基础加载内核文件:直接加载可使用的操作系统内核程序转交其它Boot loader:跳...
分类:
系统相关 时间:
2014-06-08 16:24:24
阅读次数:
345
http://poj.org/problem?id=3411
大致题意:n个城市由m条公路连接,两个城市之间可能有多条公路连接。经过每条公路都需要收费,对于城市a,b,若之前经过城市c那么只需交p元钱,否则交r元钱。问从城市1到n的最小花费。
思路:由于经过每条公路的收费有两种方式,那么有的城市可能要经过多次,以便获得更小的花费,但也有可能出现有环的情况,那么该城市经过多次只会...
分类:
其他好文 时间:
2014-06-08 15:27:22
阅读次数:
145
这个题之前做过,方法太笨还不对,今天再做突然想到一个巧妙做法,网上应该也有别人用此方法的,因为并不是很难,但我没有看别人的,是自己想出来的哈哈哈
首先要对输入的数组进行排序,这是毋庸置疑的。
因为要计算绝对值的和,所以就想到了数轴上的距离的概念。要使|X1-A|+|X2-A|最小,也就是要找一个点A,使其到X1,X2距离和最短,所以很容易想到在数轴上只要A在X1和X2之间就行。...
分类:
其他好文 时间:
2014-06-08 15:20:36
阅读次数:
202
题目:For example, given s = "aab",
Return 1 since the palindrome partitioning ["aa","b"] could be produced using 1 cut
解题思路:给一个字符串,如果字符串可以划分成若干子回文字符串,返回最小的划分数量。
这个题如果还用之前求所有划分组合的循环加递归方法的话,就会得到超时的错误。这是就要考虑别的方法,动态规划倒是一个不错的方法,但是动态规划最重要的是要找到动态方程。本题的动态方程:
dp[i] =...
分类:
其他好文 时间:
2014-06-08 14:56:58
阅读次数:
257
问题
给定N个元素的数组,求第k大的数。
特例
当k=0时,就是求最大值,当k=N-1时,就是求最小值。
应用
顺序统计
求top N排行榜
基本思想
使用快速排序方法中的分区思想,使得a[k]左侧没有更小的数,右侧没有更大的数
性能
快速选择算法的复杂度...
分类:
其他好文 时间:
2014-06-08 09:58:08
阅读次数:
211
题意:给n*n矩阵 表示个点个边 求最小生成树思路:Kruskal
算法//:简单介绍一下题意。农民要建立互联网络,目的使村庄里所有的农民连上网,//并且总费用最小。多组数据,每组数据给出一个n,然后给出n *
n大小的无向图的邻接矩阵表示,值表示边权。//要求输出最小生成树的权值和。#includ...
分类:
其他好文 时间:
2014-06-07 23:35:22
阅读次数:
235
给定一个带权的无向连通图,怎样选取一棵生成树,使树上全部边上权的总和为最小,这叫最小生成树.求最小生成树的算法(1)克鲁斯卡尔算法图的存贮结构採用边集数组,且权值相等的边在数组中排列次序能够是随意的.该方法对于边相对照较多的不是非常有用,浪费时间.(2)普里姆算法图的存贮结构採用邻接矩阵.此方法是按...
分类:
其他好文 时间:
2014-06-07 23:33:25
阅读次数:
271
题意:给定N个字符串 每个字符串可以看为一个点 每个点之间都有边 长度为对应两点之间字符不同的个数
把这些点连接起来 求最小的边长思路:Kruskal 算法的简单应用#include#includeusing namespace std;char
a[2222][10];int dist[2222]...
分类:
其他好文 时间:
2014-06-07 23:07:30
阅读次数:
237
选择排序 直接选择排序: 选择排序,每一趟找到一个最小(大)值,每一趟遍历的数据减少一次。
template void SelectSort(T a[],int length){ T temp; for (int i=0;i0;i--) {
shift(a,i,n); //n只是起条件判断作用,并不...
分类:
其他好文 时间:
2014-06-07 21:10:36
阅读次数:
210