Presentation is loading. Please wait.

Presentation is loading. Please wait.

顺序查找.

Similar presentations


Presentation on theme: "顺序查找."— Presentation transcript:

1 顺序查找

2 顺序查找是最为朴素的一种查找方式。它的查找过程为:从表的一端开始,依次将记录的关键字和给定值进行比较,若某个记录的关键字和给定值相等,则查找成功; 反之,若扫描整个表后,仍未找到关键字和给定值相等的记录,则查找失败。 顺序查找 顺序查找方法既适用于线性表的顺序存储结构,又适用于线性表的链式存储结构。

3 typedef struct{ KeyType key; InfoType otherinfo; }ElemType;
数据元素类型定义 顺序表定义 typedef struct{ ElemType *R; int length; }SSTable;

4 int LocateELem(SqList L,ElemType e) { for (i=0;i< L
int LocateELem(SqList L,ElemType e) { for (i=0;i< L.length;i++) if (L.elem[i]==e) return i+1; return 0; } 算 法 这个算法有个不好的地方在于,查找过程中每步都要检测整个表是否查找完毕。

5 改进方法就是顺序表的0号单元不存放查找表的元素,查找之前先对0号单元赋值key,这样0号单元就起着一个监视哨的作用。
算 法 改 进 int Search_Seq( SSTable ST , KeyType key ){ //若成功返回其位置信息,否则返回0 ST.R[0].key =key; for( i=ST.length; ST.R[ i ].key!=key; - - i ); return i; }

6 这样就省去了每一步都要检测整个表是否查找完毕。虽说这是一个很小的改进,但是这个改进却能将顺序查找的效率提高几乎两倍。 对于顺序查找,我们在之前已经进行了分析,平均查找长度ASL为(n+1)/2。查找不成功时,需要比较n+1次。 算 法 改 进

7 优点:算法简单,对表结构无任何要求,既可适用于顺序结构,也可适用于链式结构。 缺点:查找效率较低,当n很大时,不宜采用顺序查找。
顺序查找的优缺点


Download ppt "顺序查找."

Similar presentations


Ads by Google