查找、排序综合实验(7)
时间:2025-04-21
时间:2025-04-21
对记录序列(查找表):{55,13,23,72,109,67,2,78,13}分别实现如下操作:1)顺序查找;2)分别使用直接插入排序、冒泡排序、快速排序对原纪录序列进行排序(暂时人工排序);3)对排好序的纪录序列表进行折半查找;4)利用原纪录序列建立一颗二叉排序树,并在其上实现特定关键字值结点的查找;5)按照“除留余数法”哈希构造函数和线性探测再散列的冲突处理方法创建表长为m=11的哈希表
《
数据结构
》实验报告
-6-
low++; } while(low<high && l->r[high].key<x) low++; if(low<high) { l->r[high].key=l->r[low].key; high--; } } l->r[low].key=x; return low; } void qksort(recordlist *l,int low,int high) { int pos; if(low<=high) { pos=qkpass(l,low,high); qksort(l,low,pos-1); qksort(l,pos+1,high); } } //折半查找 int binsrch(recordlist * l,int k) { int low=1,high=l->length,mid; while(low<=high) { mid=(low+high)/2; if(k==l->r[mid].key) { cout<<"存在该元素:"<<l->r[mid].key<<endl; cout<<"该元素所在位置:"<<mid<<endl; return(1); } else if(k<l->r[mid].key) high=mid-1; else low=mid+1; } cout<<"查找失败!"<<endl; return(0); } //建立平衡二叉排序树