
数据结构
文章平均质量分 56
共同学习与进步
23#.lsy
所谓自由,不是随心所欲,而是自我主宰
展开
-
数据结构——分块查找算法详解(C语言)
分块查找又称索引顺序查找,这是一种性能介于顺序查找和折半查找之间的一种查找方法。在此查找法中,出表本身以外,尚需建立一个“索引表”例如,下图所示为一个表及索引表,表中有18个记录,可分为3个子表(R1,R2,.....R6),(R7,R8.....R12),(R13,R14......R18),对每个子表建立一个索引项,其中包括两项内容:关键字(其值为该子表中的最大关键字)和指针项(指示该子表的第一个记录在表中的位置)。索引表按关键字有序,则表或者有序或者分块有序。所谓“分块有序”指的是第二个子表中所有原创 2021-12-05 15:00:26 · 12651 阅读 · 1 评论 -
数据结构---顺序查找算法详解(C语言)
顺序查找的实现顺序查找的一般过程为:从表的一段开始,依次将记录的关键字和给定的值进行比较,若某个记录的关键字和给定值相等,则查找成功;反之,若扫描整个表后,仍未找到关键字和给定值相等的记录,则查找失败。数据元素类型定义如下:typedef struct{ keytype key;//关键字域 InfoType otherinfo;//其他域}ElemType;顺序表的定义如下:typedef struct{ ElemType *R;//存储空间基地址 .原创 2021-11-21 14:37:30 · 15269 阅读 · 0 评论 -
数据结构——二分查找(折半查找)算法详解(C语言)
折半查找,也称二分查找,在某些情况下相比于顺序查找,使用折半查找算法的效率更高。但是该算法的使用的前提是静态查找表中的数据必须是有序的。也就是说,在使用折半查找算法查找数据之前,应该首先把该表的数据按照所查的关键字进行排序折半查找算法对静态表查找表{2,5,7,17,23,25,31,35,42,76,88}采用折半查找算法查找关键字为17的关键字的过程为:如上图所示,指针 low 和 high 分别指向查找表的第一个关键字和最后一个关键字,指针 mid 指向处于 low 和 high.原创 2021-11-21 20:22:38 · 34970 阅读 · 1 评论 -
数据结构——插入排序算法详解(C语言)
插入排序的算法思想是:每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适合位置上,直到所有待排序记录全部插入为止。例如,打扑克牌在抓牌时,每抓一张牌,就插入到合适的位置,直到抓完牌为止,即得到一个有序序列。可以选择不同的方法在已排好序的记录中寻找插入位置。根据查找方法的不同,有多种插入排序的方法 ,这里介绍三种方法:直接插入排序,折半插入排序和希尔排序。一.直接插入排序直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已排好序的有序表中,从而得到一个新的,原创 2021-12-23 15:57:54 · 8863 阅读 · 0 评论 -
数据结构——哈希查找的实现(C语言)
哈希查找算法的思想:通过对元素的关键字值进行某种运算,直接求出元素的地址,即使用关键字到地址的直接转换方法,而不需要反复比较。直接转换方法有很多,这里介绍最常用的一种方法:除留取余法,即H(key)=key%p;p一般为小于表长的最大质数。例如,表长为100,p取97....原创 2021-12-15 15:52:27 · 3162 阅读 · 0 评论 -
数据结构——快速排序详解(C语言)
交换排序的基本思想是:两两比较待排序记录的关键字,一旦发现两个记录不满足次序不满足次序要求时进行交换,直到整个序列全部满足要求为止。原创 2021-12-25 21:00:32 · 2418 阅读 · 1 评论