資源描述:
《C源程序順序查找與二分查找》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。
1、一、實驗目的1、掌握順序查找和二分查找方法的基本思想及其實現技術2、了解順序查找和二分查找方法的優(yōu)缺點和適用范圍二、實驗內容(任務、要求或步驟等)【問題描述】實現在有n個元素的順序表上的順序查找和二分查找。【基本要求】(1)編寫一個創(chuàng)建函數,建立并輸出一個有n個元素的順序表,數據元素為整型。順序表長度和順序表的各數據元素由鍵盤輸入。(2)編寫函數實現在有n個元素的順序表上的順序查找。(3)編寫函數實現在有n個元素的遞增有序的順序表上的二分查找。(4)提供菜單,供用八選擇要執(zhí)行的操作,根據用戶選擇調用相應函數實現順序
2、查找和二分查找三:源程序二分查找如下#includeusingnamespacestd;structssTable{int*elem;intlength;};voidCreatssTable(ssTable&s){inti;cout?"請輸入表長:";cin?s.length;s.elem=newint
3、s.length+l
4、;cout?"請輸入表屮的各個元素”;for(i=l;i<=s.length;i++)cin?s.elem[i];}intSeqSearch(ssTables.intk
5、ey){inti;s.elem[O]=key;//“哨兵”for(i=sJength;s-elem[i]!=key;~i);returni;//找不到時,i為0}voidmain(){ssTables;intx,pos;CreatssTable(s);cout?H請輸入要查找的值”;cin?x;pos=SeqSearch(s,x);if(pos>0)cout?x?"位于表中的第,,?pos?n位置u?endl;elsecout?"沒找到";折半查找如下#includeusingnamespace
6、std;structssTable{int*elem;intlength;};voidCreatssTable(ssTable&s){inti;cout?"請輸入表長:cin?s.length;s.elem=newint[s.length+l];cout?"請按升序輸入表屮的各個元素”;for(i=l;i<=s.length;i++)cin?s.elem[i];}intBinSearch(ssTables,intkey){intlow5high,mid;low=1;high=s.length;〃置區(qū)間初值whi
7、le(low<=high){mid=(low+high)/2;if(key==s.elem[mid])returnmid;//找到待查元素elseif(key8、);if(pos>0)cout?x?n位丁-表中的第"?pos?H位置"?endl;elsecout?"沒找到”;}二分與折半#includeusingnamespacestd;structssTable{int*elem;intlength;};voidCreatssTable(ssTable&s){inti;cout?n請輸入表長:n;cin?s.length;s.elem=newint[s.length+l];cout?"請輸入表中的各個元素”;for(i=l;i<=s.length;
9、i++)cin?s.elem[i];}intSeqSearch(ssTables,intkey){inti;s.elem[0]=key;//”哨兵”for(i=sJength;s.elem[i]!=key;—i);returni;〃找不到時,i為0intBinSearch(ssTables,intkey)intlow,high,mid;low=1;high=s.length;//置區(qū)間初值while(low<=high){mid=(low+high)/2;if(key==s.elem[mid])returnmid;
10、//找到待查元素elseif(key