`
u010815305
  • 浏览: 30471 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
冒泡排序的思想很简单,如果要求排序后序列中元素按照从小到大的顺序排列,则冒泡排序的步骤如下: 1、依次比较序列中相邻的两个元素,将较大的放在后面,这样一趟比较后,最大的元素就放在了最后的一个位置; 2、 ...
<pre name="code" class="cpp">排序算法 排序有内部排序和外部排序 内部排序:数据记录在内存中排序 外部排序:因排序的数据很大,一次不能容纳全部 的排序记录,在排序的过程中需要访问外存 插入排序 将一个记录插入到已排序好的有序表中,从而得到一个新记录数增1的有序表。 即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 要点:设立哨兵,作为临时存储和判断数组边界之用。 直接插入排序 基本思想: 1、首先把第一个元素单独看做一个有序序列,依次将后面的元素 ...
*过滤文本 grep grep [选项] 需要查找的字符串 文件名 grep RMP install.log *删除某个目录及其所有文件及子目录 rm rm [选项] 文件或目录 rm -i 交互式删除 *改变指定文件的访问时间和修改时间 touch touch [选项] 设定的时间 文件 改变文件的访问时间为系统当前时间 touch -a text.txt *在文件或目录之间建立链接 ln linux 下面的链接有两种,硬链接 符号链接 硬链接;通过文件的索引节点来进行链接 软链接;相当于Windows 的快捷方式 ln [选项] 源文件 目标连接名 比如:ln ...
1.基本思想 从图的给定源点到其他各个顶点之间客观上应存在一条最短路径 ,在这组最短路径中,按其长度的递增次序,依次求出到不同顶点的最短路径 和路径长度 即按长度递增的次序生成各顶点的最短路径,即先 求出长度 ...
Linux下的shell 用户在操作系统上完成的所有任务都是在shell与Linux系统内核的交互来实现的 shell本身是由C语言编写的程序,是用户和操作系统内核之间通信的桥梁 1.shell命令的一般格式 command [options] [arguments] command 表示命令的名称 options 表示命令的选项 arguments 表示命令的参数 ls -a 列出当前目录下的所由文件(包含隐藏文件) ls -al /etc 显示etc下所有文件及信息 mv my1.txt my2.txt 2.shell 的通配符 常用的有* ,? ,[], (*) ...
普里姆算法 从连通图N=(U,E)中招最小生成树T=(U,TE). 1.算法思想 <1>若从顶点v0出发构造,U={v0},TE={}; <2>先找权值最小的边(u,v),其中u∈U且v∈V-U,并且子图不构成环,则 U=U∪{v},TE=TE∪{(u,v)};<3>重复(2),直到U=V为止.则TE中必有n-1条边,T=(U,TE)就是最小生成树 2. 设用邻接 矩阵 ((二维数组))表示图,两个顶点之间不存在边的权值为机内允许的最大值。 为便于算法实现,设置一个一 维数组 closedge[n],用来保存,V-U中各顶点到U中顶点具 ...
#include<stdio.h> #include<string.h> #define MaxInt 0x3f3f3f3f #define N 110 //创建map二维数组储存图表,low数组记录每2个点间最小权值,visited数组标记某点是否已访问 int map[N][N],low[N],visited[N]; int n; int prim() { int i,j,pos,min,result=0; memset(visited,0,sizeof(visited)); //从某点开始,分别标记和记录该点 visited[1]=1;pos=1; ...
图的存储结构 1.邻接矩阵(无向图,有向图) 该结构实际上就是用一个二维数组(邻接矩阵)来存储 顶点的信息和顶点之间的关系(有向图的弧或无向图的边) 描述形式: #define MAX_NUM 10 enum GraphKind{GY,GN};//{有向图,无向图} typedef struct { VRType adj;// 顶点关系类型。对无权图,用1(是)或0(否)表示是否相邻;对带权图,则为权值 InfoType *info; // 与该弧或边相关信息的指针(可无) }ArcCell,AdjMatrix[MAX_NUM][MAX_NUM]; typed ...
linux 的系统结构: linux 分区说明 /:根分区 swap:交换分区,相当与windows的虚拟内存 /boot:存储系统的引导信息和内核设备 /usr:存储系统应用软件安装信息 /var;存储系统日志信息 linux 硬件资源管理: 1.查看系统PCI 设备 lspci (lspci -v查看更详细的PCI 设备信息) 2.查看CPU信息 more /proc/cpuinfo 3.查看系统内存信息 more /proc/meminfo 4.查看磁盘分区信息 fdisk -l linux 外在设备的使用 1.硬件与设备文件 在 ...
先序遍历递归 void pre_traverse(BTree pTree) { if(pTree) { printf("%c",pTree->data); if(pTree->pLchild) pre_traverse(pTree->pLchild); if(pTree->pRchild) pre_traverse(pTree->pRchild); } } 中序遍历递归 void in_traverse(BTree pTree) { if(pTree) { if(pTree->pLchild) in_tr ...
#ifndef _BinHeap_h struct HeapStruct; typedef struct HeapStruct *PriorityQueue; PriorityQueue Initialize(int MaxElements); void Destroy(PriorityQueue H); void MakeEmpty(PriorityQueue H); void Insert(ElementType X,PriorityQueue H); ElementType DeleteMin(PriorityQueue H); ElementType FindMin(Pr ...
Huffman Tree的构建 赫夫曼树的构建步骤如下: 1、将给定的n个权值看做n棵只有根节点(无左右孩子)的二叉树,组成一个集合HT,每棵树的权值为该节点的权值。 2、从集合HT中选出2棵权值最小的二叉树,组成一棵新的二叉树,其权值为这2棵二叉树的权值之和。 3、将步骤2中选出的2棵二叉树从集合HT中删去,同时将步骤2中新得到的二叉树加入到集合HT中。 4、重复步骤2和步骤3,直到集合HT中只含一棵树,这棵树便是赫夫曼树。 Huffman编码的C实现 /* 赫夫曼树的存储结构,它也是一种二叉树结构, */ typedef struct No ...
AVL 树是带有平衡条件的儿茶查找树。这个平衡条件必须要容易保持,而且必须保证书的深度是O(log N),最简单的想法是 要求左右子树具有相同的高度另一种平衡条件是要求每个节点都唏嘘要具有相同的高度的做子树和右子树定义:AVL树是其每一个节点的左子树和右子树的高度最多差1的二叉树(空树的高度定义为-1) AVL树节点的声明:#ifndef _AvlTree_hstruct AvlNode;typedef struct AvlNode *Position ;typedef struct AvlNode *AvlTree ;AvlTree MakeEmpty(AvlTree T);Positio ...
在树中,对于任意节点n,n的深度为从根节点到n的唯一路径的 长。因此,根 的深度为零。n 的高度是从n到一片树叶的最长路径的长。因此所有的树叶的高都是0一棵树的高等于他的根的高. 一颗树的深度等于他的最深的树叶的深度,该深度总是等于这棵树的高. 树节点的声明typedef struct TreeNode *PtrToNode;struct TreeNode{ElementType Element;PtrToNode FirstChild;PtrToNode NextSibling;}; 二叉树节点声明typedef struct TreeNode *PtrToNode;tyedef str ...
//队列数据类型定义 typedef int ElementType; #ifndef _Queue_h struct QueueRecord; typedef struct QueueRecord *Queue; int IsEmpty(Queue Q); int IsFull(Queue Q); Queue CreateQueue(int MaxElements); void DisposeQueue(Queue Q); void MakeEmpty(Queue Q); void Enqueue(ElementType X,Queue Q); ElementType F ...
Global site tag (gtag.js) - Google Analytics