如何进行查找? 查找的方法取决于查找表的结构。 由于查找表中的数据元素之间不存在明显的组织 规律,因此不便于查找。 为了提高查找的效率,需要把查找表中的元素之 间人为地附加某种确定的关系,换句话说,用另外 一种结构来表示查找表。 静态查找表、动态查找表
由于查找表中的数据元素之间不存在明显的组织 规律,因此不便于查找。 为了提高查找的效率, 需要把查找表中的元素之 间人为地 附加某种确定的关系,换句话说, 用另外 一种结构来表示查找表。 查找的方法取决于查找表的结构。 如何进行查找? 静态查找表、动态查找表
关键字类型和数据元素类型 ·关键字类型 typedef float KeyType;I实型 typedef int Key下ype;Il整型 typedef char*Key下ype;l字符串型 。 数据元素类型 typedef struct{ KeyType key; }ElemType;
关键字类型和数据元素类型 • 关键字类型 typedef float KeyType; //实型 typedef int KeyType; //整型 typedef char *KeyType; //字符串型 • 数据元素类型 typedef struct{ KeyType key; … }ElemType;
两个关键字的比较如下宏定义: ∥-对数值型关键字 #define EQ(a,b)((a)==(b)) #define LT(a,b)((a)<(b)) #define LQ(a,b)((a)<=(b))
两个关键字的比较如下宏定义: //--对数值型关键字 #define EQ(a,b) ((a)==(b)) #define LT(a,b) ((a)<(b)) #define LQ(a,b) ((a)<=(b)) …
两个关键字的比较如下宏定义: ∥-对字符串型关键字 #define EQ(a,b)(!strcmp((a),(b))) #define LT(a,b)(strcmp((a),(b))<0) #define LQ(a,b)(strcmp((a),(b))<=0)
两个关键字的比较如下宏定义: //--对字符串型关键字 #define EQ(a,b) (!strcmp((a),(b))) #define LT(a,b) (strcmp((a),(b))<0) #define LQ(a,b) (strcmp((a),(b))<=0) …
·9.1.1顺序查找 一查找过程:从表的一端开始逐个进行记录的关键 字和给定值的比较 一算法描述 找64 例01 2 3 x 5 6 7 89 1011 645 13 19 2137 56 64 75 8088 92 0 监视哨) 比较次数: 比较次数=5 查找第n个元素:1 查找第n-1个元素:2 查找第1个元素: n 查找第个元素: n+1-i 查找失败: n+1
• 9.1.1 顺序查找 – 查找过程:从表的一端开始逐个进行记录的关键 字和给定值的比较 – 算法描述 i 例 0 1 2 3 4 5 6 7 8 9 10 11 5 13 19 21 37 56 64 75 80 88 92 找64 64 监视哨 i i i i 比较次数: 比较次数=5 查找第n个元素: 1 查找第n-1个元素:2 ………. 查找第1个元素: n 查找第i个元素: n+1-i 查找失败: n+1