#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
本章学习了几种查找的方法,顺序查找、折半查找、二叉排序树查找、哈希表。 对于几种查找的特点,顺序查找的算法简单但是查找效率低,折半查找对结构要求高,同时查找效率也高,二叉排序树查找的数据结构采用二叉链表,删除和插入操作只需要移动指针。 线性表的查找介绍了顺序查找、折半查找、分块查找。 顺序查找比较简 ...
分类:
其他好文 时间:
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. 平均比较次数的计算 题目 有个长度为12的无重复有序表,按折半查找法进行查找,在表内各元素等概率情况下,查找成功所需的平均比较(三元比较)的次数为() 解题思路 表内各元素等概率的情况下,不需要进行加权平均,算术平均就行了。计算出每个元素查找成功所需的比较次数,然后除以数组的长度。 1个元素只 ...
分类:
编程语言 时间:
2020-06-27 11:47:23
阅读次数:
72
顺序查找 监视哨的顺序查找 因为每次循环都需要对是否越界,即是否小于n做判断。事实上,还可以有更好一点的办法,设置一个哨兵,可以解决不需要每次让i与n作比较。 折半查找(二分查找) 二分查找(又称为折半查找)是在有序序列中查找比较多的查找算法,基本思路:设有一个从小到大的序列,取中间的元素m进行比较 ...
分类:
其他好文 时间:
2020-06-27 09:20:15
阅读次数:
58