算法
小小麋鹿
这个作者很懒,什么都没留下…
展开
-
堆排序
1.堆排序是在完全二叉树的基础上进行的2.堆排序的步骤: *将这个完全二叉树调整为一个大根堆(小根堆) *交换最后一个结点和根结点数据域的值 *将最后一个结点排除在下一次的排序之中,即砍掉最后一个结点完全二叉树的创建(借助队列):BinaryNode* CreateBinaryTree(int a[],int n,BinaryNode** CT){ B转载 2016-05-01 23:34:17 · 164 阅读 · 0 评论 -
二叉查找树的创建及遍历
1.二叉查找树的创建(左比根小,右比根大)BinaryNode* CreateBinaryTree(int a[],int n){ //数据存在数组a中 int i; BinaryNode *root,*newp,*cp,*parent; //newp当前正在创建的结点,cp和parent寻找当前父结点 root=NULL; for(i=0;i<n;i++){转载 2016-05-01 23:11:20 · 244 阅读 · 0 评论 -
稀疏矩阵的十字链表存储
1.结点类型我们将结点分为两种类型,头结点和数据结点,头结点包含right,down和next域,数据结点包含right,down和entry域。right域将同一行的结点链接起来,down域将同一列的结点链接起来,next域将头结点链接起来。因此使用union共用体创建合适的结点结构。typedef struct entry_node{ int row; int co转载 2016-04-25 21:20:48 · 511 阅读 · 0 评论 -
贪心算法之装箱问题
装箱问题的贪心准则:1.将物品体积从大到小排列2.遍历箱子,将物品放入一个较早打开的且剩余空间足够的箱子,否则开新箱子结点类型:typedef struct goodnode{ int gno; int v;}Goods; //物品信息结点typedef struct GoodNode{ int gno; struct GoodNode *next;}G转载 2016-05-04 22:38:39 · 1319 阅读 · 0 评论 -
二叉树的迭代后序遍历
一:1.将左结点入栈,直至左结点为空2.判断右结点(1)若右结点不为空且右结点未被访问过,则将右结点按照和左结点相同的规则入栈(2)若右结点为空或已被访问过,则将当前结点输出,出栈并进行标记**从分支再次进入循环,若从(1)进入,则继续入栈;若从(2)进入,则跳过入栈阶段,将当前栈顶置为当前结点void IteratorPrint(TreeNode *root){翻译 2016-05-25 16:42:45 · 884 阅读 · 0 评论 -
线索二叉树
在二叉树的2n个链中,有n+1个空链。用线索即指向其他结点的指针来利用这些空链。1.左儿子为空,将指向左儿子的指针指向中序遍历的前驱结点2.右儿子为空,将指向右儿子的指针指向中序遍历的后继结点使用left_thread和right_thread来标记当前结点的左右指针指向线索还是左右儿子。结点结构如下:typedef struct node{ struct node *l翻译 2016-06-02 20:45:01 · 282 阅读 · 0 评论 -
图的遍历
基于邻接表存储结点表示typedef struct node{ int vertex; //顶点值 struct node* next;}Node;Node graph[N];1.深度优先遍历(depth first search)首先访问结点v,并标记已被访问过,然后从v的邻接表中选取一个未被访问的顶点p,并从p开始继续进行深度优先遍历(递归实现)i翻译 2016-07-20 23:55:52 · 184 阅读 · 0 评论 -
归并排序
归并排序package algorithm;import java.util.Arrays;public class MergeSort { private static int[] a={0,2,0,0,0,-1,0,0,0,0,0,-1}; public static void mergeArray(int left,int right){ if(left>right)转载 2017-05-22 19:50:55 · 150 阅读 · 0 评论 -
快速排序算法
快速排序package algorithm;import java.util.Arrays;public class QuickSort { private static int[] a={11,6,33,0,33,21,89,34,0,90,123,4,33,21}; public static void swap(int i,int j){ int temp=a[i];转载 2017-05-22 19:48:55 · 152 阅读 · 0 评论