自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 无权最短路径BFS(广度优先搜索)算法(图论)

广度优先搜索(BFS)算法类似于树中的层次搜索:从任意点s出发,先遍历与s相邻的点,然后再遍历于相邻的点相邻的点。注意有向图必须是顺方向的邻接点。为什么说广度优先搜索可以用来求无权最短路径呢?因为,广度优先搜索每次都会先发现距离s为k的所有顶点,然后才会发现距离s为k+1的所有顶点。 s为起始点。void BFS(Graph& g, Vertex& s) {  queue q;  for each vertex v in g  {   v.distance = INFINITY;

2010-10-13 17:06:00 13423

原创 拓扑排序(图论)

<br />拓扑排序是对有向无环图的一种排序。表示了顶点按边的方向出现的先后顺序。如果有环,则无法表示两个顶点的先后顺序。在现实生活中,也会有不少应用例子,比如学校课程布置图,要先修完一些基础课,才可以继续修专业课。一个简单的求拓扑排序的算法:首先要找到任意入度为0的一个顶点,删除它及所有相邻的边,再找入度为0的顶点,以此类推,直到删除所有顶点。顶点的删除顺序即为拓扑排序。    很容易得到拓扑排序的伪代码:    void TopSort(Graph g)    {        for (int i=0

2010-10-12 16:45:00 1501

原创 第一章——引论

计算机硬件介绍:计算机硬件主要包括几个部分:1、处理器2、存储器3、I/O设备4、总线操作系统概念:所有的操作系统都使用某些概念,如进程,存储器以及文件系统等。1、进程:本质上是正在执行的一个程序,与每个进程相关的是进程的地址空间,这是从某个最小值的存储位置到某个值存储位置的列表,进程可以读写这个空间。该地址空间存放有可以执行的程序,程序的数据以及程序的堆栈。另外还有某些寄存器的集合。2、死锁:        当两个或更多进程交互时,它们有时候会进入一种不能解脱的状态,即死锁。3、存储管理:       

2010-09-21 00:38:00 535

原创 希尔排序

<br />使用希尔增量的排序例子:<br />使用希尔增量排序额最坏情形时的运行时间为:θ(N2)<br />#include <iostream>typedef int ElementType;void Shellsort(ElementType A[], int N){ int i,j,Increment; ElementType Tmp; for (Increment = N/2; Increment > 0; Increment /= 2) for (i = In

2010-09-07 21:00:00 518

原创 插入排序

<br />插入排序算法:<br />插入排序的一个关键思想是:位置0到位置P-1上的元素是已排过序的。<br />插入排序的时间复杂度为:O(N2)。<br />#include <iostream>typedef int ElementType;void InsetionSort(ElementType A[], int N){ int j,P; ElementType Tmp; for (P = 1; P < N; P++) { Tmp = A[P]; fo

2010-09-07 20:46:00 491

原创 快速排序

//快速排序算法#include #include #include using namespace std;//快速排序int Partition(int num[],int i,int j) //调用Partition(num,low,high)时,对num[low...high]做划分,并返回基准记录的位置 { int pivot=num[i]; //用区间的第1个记录作为基准 while(i=pivot) //pivot相

2010-09-07 17:13:00 808

原创 归并排序

/* * main.cpp * * Created on: 2010-9-7 * Author: yangyu *///归并排序#include #include using namespace std;// 归并排序中的合并算法void Merge(int a[], int left, int center, int len){ int *t = (int *) malloc((len-left+1) * sizeof(int)); //申请

2010-09-07 17:09:00 496

原创 堆排序

堆排序/* * main.c * * Created on: 2010-9-7 * Author: yangyu */#include #define LeftChild(i) ( 2 * (i) + 1)void Swap(int *a, int *b) //按地址传送交换 pass-by-reference{ int temp; temp = *a; *a = *b; *b = temp;}void PercDown(int A[]

2010-09-07 14:57:00 476

转载 非递归dfs算法

<br />都说现今内存不值钱了,哈,也就不考虑空间复杂度的问题了,弄了俩辅助数组,觉得解这题还是挺容易的,就是不知道有没有BUG。<br />问题描述:<br />假设图G采用邻接表存储,编写一个实现连通图G的深度优先遍历(从顶点v出发)的非递归算法。<br />算法思路:<br />就是深度优先的思路。同样是一个visited[]数组,标记已访问过的顶点。又用了一个_vertex[]数组,用于存放顶点。<br />算法实现:<br />#include <stdio.h><br />#inclu

2010-09-05 21:51:00 1010

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除