当前位置:首页  生活常识

生活常识

顺序查找法(顺序查找)

2024-09-04 10:30:57
导读 大家好,小东方来为大家解答以上的问题。顺序查找法,顺序查找这个很多人还不知道,现在让我们一起来看看吧!1、#include #include #define...

大家好,小东方来为大家解答以上的问题。顺序查找法,顺序查找这个很多人还不知道,现在让我们一起来看看吧!

1、#include #include #define MAX_LENGTH 100typedef int KeyType;typedef struct { KeyType *elem; int length; }SSTable; //顺序表的存储结构/*此算法比第二个算法多了一个判定i是否出界的流程,对于查找数目较少的情况,二者查找时间相差不大,对于存在大量数据时,该算法的主要查找时间消耗再判定是否出界上,所以第二个算法明显比第一个算法好,唯一增加的就是一个“哨兵”数据。

2、int Search_Seq(SSTable ST, KeyType key){ int i; for(i=1; i<=ST.length && ST.elem[i] != key; i++ ) ; if(i<=ST.length) return i; else return 0;}*/int Search_Seq(SSTable ST, KeyType key){ int i; ST.elem[0] = key; //“哨兵”,如果顺序表中不存在要查找的数据的话,则查找指针必定指向该哨兵 for(i = ST.length; ST.elem[i] != key; i--) ; return i; //找到的话,则i != 0,否则i = 0}void main(){ int i, key; SSTable T; T.elem = (KeyType *)malloc(sizeof(KeyType)); printf("How Many Entries Do You Want input"); scanf("%d", &T.length); for(i=1; i<=T.length; i++){ printf("Please input the %dth entries ", i); scanf("%d", &T.elem[i]); } for (i=1; i<=T.length; i++) printf("%5d",T.elem[i]); //显示已经输入的所有数据 printf("Please input the data you want to search"); scanf("%d", &key); i = Search_Seq(T,key); printf("the search data is locate the %dth(0 indicate can not find)",i); }。

本文到此分享完毕,希望对大家有所帮助。

免责声明:本文由用户上传,如有侵权请联系删除!