#include<stdio.h> #include<stdlib.h> #define MAX_SIZE 101 #define SWAP(x, y, t)((t) = (x), (x) = (y), (y) = t) #define COMPARE(x, y)((x) < (y)) ? -1 : ...
分类:
编程语言 时间:
2020-06-30 09:12:57
阅读次数:
83
1. 二分法 二分查找也属于顺序表查找范围,二分查找也叫做折半查找,二分查找的时间效率为(logN) 二分查找的基本思想是:在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功,如果给定值小于中间值,则查找数组的前半段,否则查找数组的后半段。 二分查找只适用于有序数组或者链 ...
分类:
编程语言 时间:
2020-06-29 23:01:59
阅读次数:
100
1.顺序查找:逐个比较 时间复杂度:T(n) = O(n),)空间复杂度:S(n) = O(n) 2.折半查找 3.分块查找:把无序的列表分成若干子块(子表),然后建立一个索引表,记录每个子块中的某个关键字(最大的数或是最小的数),然后用关键字和这个索引表进行对比。该索引表还存储子块的起始位置,所以 ...
分类:
其他好文 时间:
2020-06-29 09:42:10
阅读次数:
47
一.查找 1.顺序查找:简单粗暴,将待查找数据和表中数据一一对比。 2.二分查找:也称折半查找,要求顺序表或者数组必须有序,查找效率相对较高。 3.分块查找:要求块与块之间有序,块内部不需要有序。查找效率高,但对表要求较高。 二.树的查找 1.二叉查找树:它或者是一棵空树,或者是具有下列性质的二叉树 ...
分类:
其他好文 时间:
2020-06-28 22:36:37
阅读次数:
64
第七章--查找 一、 1、动态查找表和静态查找表 动态查找表:在查找的同时对表修改操作(如:插入和删除) 静态查找表:与动态查找表刚好相反 2、平均查找长度 (即关键字的平均比较次数)为确定记录在查找表中的位置,需和给定值进行比较的关键字个数的期望值,称为查找算法在查找成功时的平均查找长度 若查找概 ...
分类:
其他好文 时间:
2020-06-28 22:27:17
阅读次数:
69
本章学习了几种查找的方法,顺序查找、折半查找、二叉排序树查找、哈希表。 对于几种查找的特点,顺序查找的算法简单但是查找效率低,折半查找对结构要求高,同时查找效率也高,二叉排序树查找的数据结构采用二叉链表,删除和插入操作只需要移动指针。 线性表的查找介绍了顺序查找、折半查找、分块查找。 顺序查找比较简 ...
分类:
其他好文 时间:
2020-06-28 22:24:15
阅读次数:
51
一、基本概念: 1、 列表:待搜索的数据集合。 2、 关键字:要查找的那个数据。 3、 查找:一种算法过程。 二、基于线性表的查找: 1、 顺序查找: (1)思想:逐个比较,直到找到或者查找失败。 (2)时间复杂度:T(n) = O(n)。 (3)空间复杂度:S(n) = O(n)。 2、 折半查找 ...
分类:
其他好文 时间:
2020-06-28 20:12:55
阅读次数:
42
1、心得体会:在第七章的学习当中,主要是对查找这一操作的深入学习,主要操作对象为线性表、树表和散列表。 查找,主要有顺序查找、折半查找、分块查找。 一、线性表查找 11、 顺序查找方法既适用于线性表的顺序存储结构,又适用千线性表的链式存储结构。 在顺序查找中,有一个很有技巧的设置,在对当前位置的关键 ...
分类:
其他好文 时间:
2020-06-28 12:30:13
阅读次数:
76
题目:线性表中的元素递增有序且按照顺序存储在计算机中,要求设计一种算法在最少时间内查找到数值为X的元素,若找到则将其与后继元素位置交换,若找不到则将其插入表中使表中元素仍递增有序 分析:要求最少时间则采用折半查找,分为递归和循环两种。若找到元素后该元素位置为最后一个则不做处理,若找不到该元素后插入该 ...
分类:
编程语言 时间:
2020-06-28 09:31:56
阅读次数:
65
一、思维导图 二、重要知识点 1.线性表的查找 1.1顺序查找 设置监视哨的顺序查找算法: int Search_Seq(SSTable ST,KeyType key) { ST.R[0].key = key; for(i = ST.length;ST.R[i].key != key:--i); r ...
分类:
其他好文 时间:
2020-06-28 00:13:18
阅读次数:
76