排序从大体上来讲,做了两件事情:
1、比较两个数据项;
2、交换两个数据项,或复制其中一项
一、冒泡排序
大O表示法:交换次数和比较次数都为O(N*N)。
算法原理:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。...
分类:
编程语言 时间:
2014-06-10 15:23:19
阅读次数:
234
数组特点:
1、大小固定
2、同一数据类型
3、下标访问
4、数据项可重复
Java数据类型:基本类型(int和double)和对象类型。在许多编程语言中,数组也是基本类型。但在Java中把它们当作对象来对待,因此在创建数组时必须使用new操作符。
有序数组与无序数组比较:最主要的好处是查找速度比无序数组快多了。不好的方面是在插入操作...
分类:
编程语言 时间:
2014-06-10 14:53:07
阅读次数:
359
栈的定义
1, 栈是一种特殊的线性表
2,栈仅能在线性表的一端进行操作
3,栈顶(Top): 允许操作的一端 允许操作的一端
4,栈底(Bottom): ,不允许操作的一端 不允许操作的一端
这里我们实现了顺序栈和链式栈~~~~...
分类:
编程语言 时间:
2014-06-10 13:49:52
阅读次数:
265
题目:
链接:点击打开链接
思路:
对边排序,再枚举每条边,如果出现通路(findset(x) == findset(y))就结束。
代码:
#include
#include
#include
#include
using namespace std;
#define MAXN 220
#define MAXM 1010
#define MAX ...
分类:
其他好文 时间:
2014-06-10 07:34:46
阅读次数:
237
图文并茂。Dijkstra算法求某一个源点到其余各顶点时间复杂度是O(n^2),但如果采用此算法,找从某一源点到某一特定终点的最短路径,复杂度仍为O(n^2)。
求每一对顶点之间的最短路径:
(1)每次以一个顶点为源点,重复执行Dijkstra算法n次。总的时间复杂度是O(n^3);
(2)弗洛伊德(Floyd)算法:时间复杂度也是O(n^3),但形式上更简单。...
分类:
其他好文 时间:
2014-06-10 07:03:14
阅读次数:
279
链表的分类:
单链表:
双链表:
每一个节点有两个指针域
循环链表:
能通过任何一个节点找到其它所有的结点
非循环链表:
算法:
遍历
查找
清空
销毁
求长度
排序
删除节点
插入节点
下面举个例子
例1:
{CSDN:C...
分类:
其他好文 时间:
2014-06-10 06:58:23
阅读次数:
244
堆排的灵感源自于堆的数据结构。它是一种原地排序算法,不需要额外的临时数组。
基本思想
堆排的基本思想是:
先建立一个最大堆
将最大的元素移动到数组末尾,减小堆的大小,调整最大堆使其符合最大堆的性质
重复第二步,直到最大堆耗尽为止
第一个步骤建立最大堆的代码非常简单,只要对每个节点执行sink操作即可。
...
分类:
其他好文 时间:
2014-06-10 06:55:08
阅读次数:
295
关联数组可以有两种操作:
插入一个关键字和对应的值
通过关键字查询与之对应的值
典型的应用有DNS查找。
接口
关联数组的接口如下:
public interface ST {
public Value get(Key key);
public void remove(Key key);
pub...
分类:
其他好文 时间:
2014-06-10 06:41:31
阅读次数:
215
本文简单描述了Dijkstra(迪杰斯特拉)算法,结合一个实例进行了算法流程描述,给出了C语言的算法实现。另外给了两个直接应用Dijkstra算法求解ACM题的链接。...
分类:
其他好文 时间:
2014-06-10 06:26:20
阅读次数:
307
一、概念
1. 数据库 (Database)
什么是数据库?
数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。
这种数据集合具有如下特点:
尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,
对数据的增、删、改和检索由统一软件进行管理和控制。
从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。
...
分类:
数据库 时间:
2014-06-10 06:23:03
阅读次数:
282