- 博客(6)
- 收藏
- 关注
原创 排序
冒泡排序:原理:第一次循环将最大的数放在所有数的后面。 然后依次对前n-1和n-2执行第一次的操作。#includeusing namespace std;int main(){ int n; cin>>n; int a[20]; for(int i=0;i<n;i++) { cin>>a[i]; } int k=n; while(k>=
2016-11-28 17:03:31 323
原创 shell算法
#includeusing namespace std;int main(){ int n; cin>>n; int a[30]; for(int i=1;i<=n;i++) { cin>>a[i]; } int d=n/2; while(d>=1)//保证取到所有间隔。 { for(int i=1+d;i<=n;i++) {
2016-11-28 15:53:53 340
原创 直接插入排序与折半排序
直接插入排序的代码实现:#includeusing namespace std;int a[20];void sort(int n){ for(int i=2;i<=n;i++) { int j; if(a[i]<a[i-1]) { a[0]=a[i];//a[0]用来暂时储存a[1]及a[1]之后的所有数字。 a[i]=a[i-1];//至少先移动一次
2016-11-27 16:15:23 274
原创 广度优先搜索
#includeusing namespace std;int main(){ int a[10]={0};//用于标记点是否被访问过; int b[10][10];//用于表示点与点直接的联通情况; int que[10]={0};//用于存储被访问的点的顺序; int head,tail; que[1]=1;//从编号为1的顶点开始广搜; a[1]=1; int n,m,c
2016-11-23 18:07:53 230
原创 DFS深度优先搜索
主要思想:首先以一个没被访问过的顶点为起点,沿着当前顶点的边走到没被访问过的顶点;当没有没被访问过的顶点时,则回到上一个顶点,重复次此过程,直到访问完所有的顶点。代码实现:
2016-11-20 21:44:44 196
原创 最短路径
最短路径最常见的两种问题: 1:求某个原点到其余各顶点的最短路径。迪杰斯特拉算法 2:求每一对顶点之间的最短路径。弗洛伊德算法。 迪杰斯特拉算法 首先,找出各点到V1的最短路径,然后把这点加入以求出最短路径的终点集合里,下面以找出的这个点为中间点,判断V1经过此中间点到其他各点的距离与从V1直接到其他各点的距离,若前者
2016-11-14 15:20:35 306 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人