顺序查找:
int SeqSearch(int a[],int n,int k) {//在顺序表中查找关键字值等于k的记录, //若查找成功,返回该记录的位置下标序号,否则返回0 int i=0; while (i<n && a[i]!= k) i++; if (i<n) return i; else return -1; }
对半查找:
int BinarySearch(int a[], const int x, int l, int r) { while (r >= l){ int m = (l+r)/2; if (x == a[m]) return m; if (x < a[m]) r = m-1; else l = m+1; } return -1; }
链表顺序查找(待完整程序测试)
typedef struct node { int key; //结点的关键字类型keytype,这里简化为int //anytype otheritem; //结点的其他成分 struct node *next; //指向链表结点的指针 }Link_Node,*Link; Link_Node *link_search (Link *h , int k) { //Link为带头结点链表的头指针,查找关键字值等于k的记录, //查找成功,返回指向找到的结点的指针,查找失败返回空指针 Link_Node *p=h->next; while ((p!=NULL) && (p->key!=k)) p=p->next; return p; }
posted on 2009-09-21 22:47 Hibernate4 阅读(147) 评论(0) 编辑 收藏 举报