李晓亮的博客

导航

随笔分类 -  数据结构学习

希尔排序的C语言实现(2)
摘要:代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--#include<stdio.h>#include<stdlib.h>voidShellSort(inta[],intIndex);voidPrintArray(constc... 阅读全文

posted @ 2010-08-19 17:02 LeeXiaoLiang 阅读(586) 评论(0) 推荐(0)

希尔排序的C语言实现(1)
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--#include<stdio.h>#include<stdlib.h>intinitialStep(intsize);voidsort(intarray[],intfrom,i... 阅读全文

posted @ 2010-08-19 10:37 LeeXiaoLiang 阅读(719) 评论(0) 推荐(0)

简单插入排序的C语言实现
摘要:代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--#include<stdio.h>#include<stdlib.h>voidPrintHeap(constchar*strMsg,intarray[],intnLength... 阅读全文

posted @ 2010-08-17 15:29 LeeXiaoLiang 阅读(1284) 评论(0) 推荐(0)

堆排序的C语言实现
摘要:代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--#include<stdio.h>#include<stdlib.h>voidHeapSort(intnum[],intsize);voidBuildHeap(intnum[... 阅读全文

posted @ 2010-08-13 12:08 LeeXiaoLiang 阅读(320) 评论(0) 推荐(0)

对于堆排序算法的理解
摘要:Q1.为什么HeapSort在创建初始堆时循环的索引是从n/2开始的A1.因为堆排序的数据存储结构是数组: 若数组的索引从1开始,则若数组元素的个数为n,则以最后一个元素为左子节点的父节点的索引为n/2;依次类推,则以倒数第二个元素为左子节点的父元素的索引为n/2-1,...n/2-n/2-1; 若数组的索引从0开始,则若数组元素的个数为n,则以最后一个元素为左子节点的父节点的索引为n/2-1;依... 阅读全文

posted @ 2010-08-11 16:32 LeeXiaoLiang 阅读(216) 评论(0) 推荐(0)

【摘】完全二叉树
摘要:概述:完全二叉树是效率很高的数据结构,堆是一种完全二叉树,所以效率极高,像十分常用的排序算法、Dijkstra算法、Prim算法等都要用堆才能优化,几乎每次都要考到的二叉排序树的效率也要借助平衡性来提高,而平衡性基于完全二叉树。 这是完全二叉树的基本形态,要深深记牢。完全二叉树定义  完全二叉树(Complete Binary Tree)   若设二叉树的高度为h,除第 h 层外,其它各层 (1~... 阅读全文

posted @ 2010-08-10 10:51 LeeXiaoLiang 阅读(843) 评论(0) 推荐(0)

【摘】堆排序原理及分析
摘要:堆排序原理及分析 起源  1991年计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德(Robert W.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了著名的堆排序算法( Heap Sort ) “堆”定义  n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质):   (1) ... 阅读全文

posted @ 2010-08-10 10:35 LeeXiaoLiang 阅读(513) 评论(0) 推荐(0)

【转】随机二叉搜索树 Treap
摘要:(当个日记记录Treap这一结构,详细参见http://www.nocow.cn/index.php/Treap, 在这里我着重讲一下旋转) Treap,它其它就是一个二叉查找树(BST)+堆(HEAP). 它的数据有两个:关键值(key),优先级(fix). 用struct表示Treap的结点的结构如下: struct node { datatype key; int fix; node * ... 阅读全文

posted @ 2010-06-21 00:26 LeeXiaoLiang 阅读(453) 评论(0) 推荐(0)