C語言實現(xiàn)順序表的順序查找和折半查找
更新時間:2020年11月01日 12:14:39 作者:Andrelia20171760
這篇文章主要為大家詳細介紹了C語言實現(xiàn)順序表的順序查找和折半查找,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C語言實現(xiàn)順序表的順序查找和折半查找的具體代碼,供大家參考,具體內(nèi)容如下
順序查找:
#include <iostream>
using namespace std;
int SeqSearch(int r[],int n,int k)
{
r[0]=k;//下標0用作哨兵存放要查詢的數(shù)
int i=n;
while(r[i]!=k)//不用判斷下標i是否越界
{
i--;
}
return i;
}
int main()
{
int n;
cout<<"請輸入數(shù)組元素個數(shù):"<<endl;
cin>>n;
int a[n+1];
cout<<"請輸入數(shù)組元素:"<<endl;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
int k;
cout<<"請輸入要查詢的數(shù):"<<endl;
cin>>k;
for(int i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
cout<<"該數(shù)在數(shù)組中的位置為:";
cout<<SeqSearch(a,n,k);
return 0;
}
折半查找:
#include<iostream>
using namespace std;
int BinSearch1(int r[],int n,int k)//非遞歸
{
int low=1,high=n;//設置查找區(qū)間
while(low<=high)//如果區(qū)間存在
{
int mid=(low+high)/2;
if(k<r[mid])high=mid-1;//查找在左半?yún)^(qū)進行,回到while那一步
else if(k>r[mid])low=mid+1;
else return mid;
}
return 0;//如果區(qū)間不存在,則返回0,查找失敗
}
int BinSearch2(int r[],int low,int high,int k)//遞歸
{
int mid=(low+high)/2;
if(low>high) return 0;
else
{
if(k<r[mid])BinSearch2(r,low,mid-1,k);
else if(k>r[mid])BinSearch2(r,mid+1,high,k);
else return mid;
}
}
int main()
{
int n;
cout<<"請輸入數(shù)組元素個數(shù):";
cout<<endl;
cin>>n;
int a[n+1];
cout<<"請輸入數(shù)組元素:";
cout<<endl;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
cout<<"請輸入要查找的數(shù):";
cout<<endl;
int k;
cin>>k;
cout<<"該數(shù)在數(shù)組中的位置是:"<<endl;
cout<<BinSearch1(a,n,k);cout<<endl;
cout<<BinSearch2(a,1,n,k);
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
OpenCV中findContours函數(shù)參數(shù)詳解
Opencv中通過使用findContours函數(shù),簡單幾個的步驟就可以檢測出物體的輪廓,很方便。本文將和大家一起探討一下findContours方法中各參數(shù)的含義及用法,感興趣的可以了解一下2022-08-08
C++實現(xiàn)判斷一個字符串是否為UTF8或GBK格式的方法
這篇文章主要介紹了C++實現(xiàn)判斷一個字符串是否為UTF8或GBK格式的方法,涉及C++針對字符編碼的遍歷、判斷、編碼轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
在C++17中實現(xiàn)無鎖數(shù)據(jù)結(jié)構(gòu)的方法詳解
在探索?C++17?中的無鎖數(shù)據(jù)結(jié)構(gòu)之前,我們首先需要理解無鎖編程的基本概念及其在現(xiàn)代軟件開發(fā)中的重要性,在這個章節(jié)中,我們將深入探討無鎖編程的概念,以及它如何滿足人類對于更高效、更可靠軟件的本能需求,文中通過代碼示例介紹的非常詳細,感興趣的朋友可以參考下2023-12-12

