【数据结构】——排序算法——3.1、选择排序
一、先上维基的图:
分类
排序算法
数据结构
数组
最差时间复杂度
О(n²)
最优时间复杂度
О(n²)
平均时间复杂度
О(n²)
最差空间复杂度
О(n) total, O(1)auxiliary
二、描述:
选择算法算是最直观的一...
分类:
编程语言 时间:
2015-04-21 11:13:40
阅读次数:
152
什么是Bit-map
所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。
来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-map的方法来达到排序的目的。要表示8个数,我们就只需要8个Bit(1B...
分类:
其他好文 时间:
2015-04-13 10:54:37
阅读次数:
155
首先给出 一些 概念问题:
1.生成树: 一个n个顶点的 连通图 的 极小连通子图。 它含有n个顶点,但只有 n-1条边,不存在回路。
2.最小生成树:一个带权的 无向连通图,求出 各边权值相加 最小的 生成树,叫做最小生成树。
所以 求最小生成树 首先 要满足: 1. 首先 是 无向图 2. 必须是 连通图(任意两个顶点可达)3.带权
简单的说 就是 必须是 连通网。
求...
分类:
其他好文 时间:
2015-04-13 09:47:10
阅读次数:
187
定义
在程序设计中,有相当一类求一组解,或求全部解或求最优解的问题,例如读者熟悉的八皇后问题,不是根据某种特定的计算法则,而是利用试探和回溯的搜索技术求解。回溯法也是设计递归过程的一种重要方法,它的求解过程实质上是一个先序遍历一棵"状态树"的过程,只是这棵树不是遍历前预先建立的,而是隐含在遍历过程中。
---《数据结构》(严蔚敏)
怎么理解这段话呢?
首先,某种问题的解我们很难去找规律计算...
分类:
编程语言 时间:
2015-04-12 10:46:33
阅读次数:
185
1.时间复杂度的粗略计算方法: 1。用常数1取代运行时间中的所有加法常数 2.在修改后的运行次数函数中,只保留最高阶项 3.如果最高阶项存在且不是1,则去除与这个项相乘的常数。 常数阶 例如执行1次O(1),执行12次O(12)这样说是不对的,无论常数是多少都记为O(1) 线性阶 ..
分类:
编程语言 时间:
2015-04-12 06:58:58
阅读次数:
186
1、使用标准库中的random_shuffle()函数实现很简单,代码如下:
int main() { vectorint> s_stl; for (int i=0; i random_shuffle(s_stl.begin(),s_stl.end()); cout "使用C++算法库:"; for (vectorint>::iterator it=s_st...
分类:
编程语言 时间:
2015-04-11 13:19:49
阅读次数:
237
优先队列和堆排序标签(空格分隔): 排序算法 数据结构优先队列和堆排序
优先队列
堆
1 基于堆的算法
初始化
自底向上堆化
自顶向下堆化
插入删除一项
2 堆排序
优先队列全部代码
1 优先队列普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (largest-in,first-...
分类:
编程语言 时间:
2015-04-08 10:59:15
阅读次数:
214
入门训练 Fibonacci数列
时间限制:1.0s 内存限制:256.0MB
问题描述
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
输入格式
输入包含一个整数n。
输出格式
输出一行,包含...
分类:
其他好文 时间:
2015-04-06 15:49:19
阅读次数:
121
1、概念
回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。
回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。
...
分类:
其他好文 时间:
2015-04-06 15:48:22
阅读次数:
254
我是看着《啊哈!算法》这本书完成并查集的入门,本想举出另外的栗子,奈何。。。书上的栗子已经很贴切了。
首先引入一个问题:已知有10个土匪,警方需要需要一点点顺藤摸瓜最后挖出他们各自背后的团伙一锅端,经过一段时间的侦查警方的得到了9条确切线索,分别能说明那两个土匪的归顺关系。那么请问此次行动总共要打掉几个团伙?
输入数据如下:
按照第一行输入人数n,线索数m,接下来的m行输入线索,每行线索...
分类:
其他好文 时间:
2015-04-06 09:00:20
阅读次数:
130