- 博客(16)
- 收藏
- 关注
浅析回溯算法
1、回溯法的基本思想 (1)在确定解空间的组织结构后,回溯法从开始结点(根结点)出发,以深度优先方式搜索整个解空间。这个开始结点成为活结点,同时也成为当前的扩展结点。(2)在当前扩展结点处,搜索向纵深方向移至一个新结点。这个新结点成为新的活结点,并成为扩展结点。(3)如果在当前扩展结点处不能再向纵深方向移动,则当前扩展结点就成为死结点。此时,应往回移动(回溯)到最近的活结点处,...
2011-06-29 22:48:09 325
浅析模拟算法
1.描述 有些问题难以找到公式或规律来解决,可以按照步骤,模拟人的解决行为,一步一步往下走就能找到答案。2.实例分析 (1)(北大考研机试)一根长度为1米的木棒上有若干只蚂蚁在爬动。它们的速度为每秒一厘米或静止不动,方向只有两种,向左或者向右。如果两只蚂蚁碰头,则它们立即交换速度并继续爬动。三只蚂蚁碰头,则两边的蚂蚁交换速度,中间的蚂蚁仍然静止。如果它们爬到了木棒的边缘(0...
2011-06-27 07:58:02 311
农夫过河的四种解法
/* * 题目描述:有一个农夫,带着一只狼、一只羊、一颗白菜过河。其中农夫不在的时候狼会吃羊, * 羊会吃白菜。只有一只船,且每次农夫最多只能带一样物品过河。求解决方案。 * * 思路:1. 过程回溯法。把人、狼、羊、白菜看成A、B、C、D。过河的时候从ABCD中选两个过河,在 * 选一个回来。若发生狼跟羊、羊跟白菜在同一个岸边,且农夫不...
2011-06-25 14:21:17 8618
几道简单的汇编程序
;搜索数组,看是否存在CONSTDATA SEGMENT ARRAYB DB 2,3,1,8,7FH,-5 COUNT EQU $-ARRAYB ;数组长度 CONST EQU 7FH ;判断数组中是否存在此元素 ADDRES DD 0 ;若存在,存放元素的地址 SCANTIME DW 0 ;若存在,存放搜索次数DATA ENDS...
2011-06-25 14:06:58 329
各种排序算法的实现(C语言实现)
/* * 各种基本排序算法实现(以由小到大为例) */#include<stdio.h>#define ARRAY_LENGTH 50 //插入排序void inseartSort(int a[],int length){ int i,j,index,temp; for(i=0;i<length;i++){//数组a中元素逐个有序插入数...
2011-06-17 22:31:28 280
二叉查找树(C语言实现)
/* * 构造一颗二叉查找树,实现树的插入、删除等基本操作 * */#include<stdio.h>#include<stdlib.h>typedef struct node{ int count; //记录某个元素出现的次数 int data; //数据 struct node * left; struct...
2011-06-15 23:47:54 158
哈希表查找(C语言实现)
/* * 题目:给定一个全部由字符串组成的字典,字符串全部由大写字母构成。其中为每个字符串编写密码,编写的 * 方式是对于 n 位字符串,给定一个 n 位数,大写字母与数字的对应方式按照电话键盘的方式: * 2: A,B,C 5: J,K,L 8: T,U,V * 3: D,E,F 6: M,N,O 9: W,...
2011-06-15 13:38:53 2282
索引查找之英语词典(C语言实现)
/* * 题目:英语词典。所有的单词存放在dictionary.txt中。输入一个英文单词,在词典中查找这个单词, * 若找到显示这个单词的中文意思,显示此单词不存在。 * 思路:以字母顺序建立索引表。 * */ /* * 题目:英语词典。所有的单词存放在dictionary.txt中。输入一个英文单词,在词典中查找这个单词, * 若找到显示这个单词的中...
2011-06-14 22:48:23 2146 1
求最短路径的两种算法(C语言实现)
求这个有向网中任意两点的最短路径 /* * 最短路径,迪杰斯特拉算法和弗洛伊德算法(采用邻接矩阵存储) * */#include<stdio.h>#define MAX_VERTEX_NUM 20#define INFINITE 10000 //当做无穷大//图的定义typedef struct { int verte...
2011-06-11 11:23:10 2359
拓扑排序(C语言实现)
对这个有向图进行拓扑排序/* * 拓扑排序(采用邻接矩阵存储) */#include<stdio.h>#define MAX_VERTEX_NUM 20//图的定义typedef struct { int vertexNum; char vertex[MAX_VERTEX_NUM]; int arc[MAX_VERTEX_NUM][M...
2011-06-10 23:09:59 1094
最小生成树(C语言实现)
求这个网的最小生成树/* * 普里姆算法和克鲁斯卡尔算法求最小生成树 * 采用邻接矩阵存储 * */#include<stdio.h>#define MAX_VERTEX_NUM 20//图的定义typedef struct { int vertexNum; int edgeNum; char vertex[MAX_VERTE...
2011-06-10 21:30:32 4793 2
邻接表存储的有向图的基本操作(C语言实现)
/* * 邻接表存储的有向图的基本操作 */#include<stdio.h>#include<stdlib.h>#define MAX_VERTEX 20typedef char VertexType;//用数组vertex按序存放遍历的各个顶点,广度遍历时看成队列,深度遍历时看成栈VertexType vertex[MAX_VER...
2011-06-06 11:47:44 2874
邻接矩阵存储的无向网的基本操作(C语言实现)
/* *无向网的基本操作(邻接矩阵存储) */#include<stdio.h>#define MAX_VERTEX_NUM 20typedef char VertexType;typedef struct { int vertexNum;//顶点个数 VertexType vertex[MAX_VERTEX_NUM];//顶点信息 int ...
2011-06-05 01:09:13 937
可变分区存储管理(c++实现)
思路大致同上一个程序,只是这个用c++的模板实现,实现起来容易一些。把对指针的操作都封装载模板类里面。这样就避免了很多指针问题。但是相对与C语言实现,效率要低一些。...
2011-06-02 23:05:37 1415
可变分区存储管理模拟与先来先服务算法(C语言实现)
可变分区存储管理问题描述: 编写程序模拟实现内存的动态分区法存储管理。内存空闲区使用自由链管理,采用最坏适应算法从自由链中寻找空闲区进行分配,内存回收时要与相邻空闲区的合并。初始状态信息:假定系统的内存共640K,初始状态为操作系统本身占用64K。将要申请内存的作业信息(存储在document/job.txt文件中),当前时间是0。输入:用户打开document...
2011-06-02 22:58:56 1013
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人