目录
一、实验目的及要求 0
二、算法原理概述 0
1. 顺序查找 1
2. 二分查找 1
4. 树表查找 3
5. 哈希查找 4
三、软件开发环境及工具 11
四、实验内容 11
五、实验总结 25
六、参考文献: 26
638. else 37
658. else 38
703. else 39
754. else 39
802. else 40
816. else 40
1162. else 46
1357. else 50
一、实验目的及要求
(1)集合结构的表示及实现。
(2)查找和排序算法的实现。
(3)文件的存取操作
(4)系统功能:图书采编、图书查询、图书流通和个人信息等功能
(5)程序能对输入数据的容错性进行检查,保证数据的合法性。
(6)用户界面的友好性:程序可提供菜单供用户选择和相应的交互信息。
二、算法原理概述
(一) 查找
1.查找算法分类:
(1)静态查找和动态查找;
静态或者动态都是针对查找表而言的。
动态表指查找表中有删除和插入操作的表。
(2)无序查找和有序查找。
无序查找:被查找数列有序无序均可;
有序查找:被查找数列必须为有序数列。
2.查找的基本概念
(1)查找:在数据集合中,寻找满足某种条件的数据元素的过程称为查找。
(2)查找表(查找结构);用于查找的数据集合称为查找表。
(3)关键字是数据元素中某个数据项的值,用它可以标识一个数据元素,若此关键字可以唯一地标识一个记录,用词关键字为主关键字。
(4)平均查找长度是所有查找过程中进行关键字的比较次数的平均值。
对于n个元素的表,给定值key与表中第i个元素相等,需进行n-i+1次关键字的比较。
平均查找长度(Average Search Length,ASL):需和指定key进行比较的关键字的个数的期望值,称为查找算法在查找成功时的平均查找长度。
对于含有n个数据元素的查找表,查找成功的平均查找长度为:ASL = Pi*Ci的和。
Pi:查找表中第i个数据元素的概率。
Ci:找到第i个数据元素时已经比较过的次数。
3、常见的查找算法
1. 顺序查找
前提:顺序查找适合于存储结构为顺序存储或链接存储的线性表。
基本思想:顺序查找也称为线形查找,属于无序查找算法。从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,若相等则表示查找成功;若扫描结束仍没有找到关键字等于k的结点,表示查找失败。
复杂度分析:
查找成功时的平均查找长度为:(假设每个数据元素的概率相等) ASL = 1/n(1+2+3+…+n) = (n+1)/2 ;
当查找不成功时,需要n+1次比较,时间复杂度为O(n);
所以,顺序查找的时间复杂度为O(n)。