欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實現(xiàn)順序表的順序查找和折半查找

 更新時間:2020年11月01日 12:14:39   作者:Andrelia20171760  
這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)順序表的順序查找和折半查找,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C語言實現(xiàn)順序表的順序查找和折半查找的具體代碼,供大家參考,具體內(nèi)容如下

順序查找:

#include <iostream>
using namespace std;
int SeqSearch(int r[],int n,int k)
{
 r[0]=k;//下標(biāo)0用作哨兵存放要查詢的數(shù)
 int i=n;
 while(r[i]!=k)//不用判斷下標(biāo)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;//設(shè)置查找區(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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • dword ptr指令詳細(xì)解析

    dword ptr指令詳細(xì)解析

    8086CPU的指令,可以處理兩種尺寸的數(shù)據(jù),byte和word。所以在機器指令中要指明,指令進行的是字操作還是字節(jié)操作
    2013-09-09
  • C語言實現(xiàn)堆的簡單操作的示例代碼

    C語言實現(xiàn)堆的簡單操作的示例代碼

    堆(heap)是計算機科學(xué)中一類特殊的數(shù)據(jù)結(jié)構(gòu)的統(tǒng)稱。堆通常是一個可以被看做一棵樹的數(shù)組對象。本文介紹了C語言中堆的一些簡單操作,需要的可以參考一下
    2022-11-11
  • C++中的對象數(shù)組詳細(xì)解析

    C++中的對象數(shù)組詳細(xì)解析

    在建立數(shù)組時,同樣要調(diào)用構(gòu)造函數(shù)。如果有50個元素,就需要調(diào)用50次構(gòu)造函數(shù)。在需要的時候,可以在定義數(shù)組時提供實參以實現(xiàn)初始化
    2013-10-10
  • C++你最好不要做的幾點小結(jié)

    C++你最好不要做的幾點小結(jié)

    整理如下,主要是方便剛開始接觸c++的朋友
    2013-01-01
  • c++中拷貝構(gòu)造函數(shù)的參數(shù)類型必須是引用

    c++中拷貝構(gòu)造函數(shù)的參數(shù)類型必須是引用

    如果拷貝構(gòu)造函數(shù)中的參數(shù)不是一個引用,即形如CClass(const CClass c_class),那么就相當(dāng)于采用了傳值的方式(pass-by-value),而傳值的方式會調(diào)用該類的拷貝構(gòu)造函數(shù),從而造成無窮遞歸地調(diào)用拷貝構(gòu)造函數(shù)。因此拷貝構(gòu)造函數(shù)的參數(shù)必須是一個引用
    2013-07-07
  • C++中指向?qū)ο蟮某V羔樑c指向常對象的指針詳解

    C++中指向?qū)ο蟮某V羔樑c指向常對象的指針詳解

    如果一個變量已經(jīng)被聲明成常變量,則只能用指向常變量的指針變量指向它,而不能用一般的(非const型的)指針變量指向它
    2013-10-10
  • 對C語言中遞歸算法的深入解析

    對C語言中遞歸算法的深入解析

    C通過運行時堆棧支持遞歸函數(shù)的實現(xiàn)。遞歸函數(shù)就是直接或間接調(diào)用自身的函數(shù)
    2013-07-07
  • 詳解C#byte數(shù)組怎么傳入C

    詳解C#byte數(shù)組怎么傳入C

    在本篇內(nèi)容里小編給大家整理了關(guān)于C#byte數(shù)組怎么傳入C的相關(guān)知識點內(nèi)容,有興趣的朋友們學(xué)習(xí)參考下。
    2019-03-03
  • 如何在C語言中判斷socket是否已經(jīng)斷開

    如何在C語言中判斷socket是否已經(jīng)斷開

    如果不主動關(guān)閉socket的話,系統(tǒng)不會自動關(guān)閉的,除非當(dāng)前進程掛掉了,操作系統(tǒng)把占用的socket回收了才會關(guān)閉。小編今天跟大家簡單介紹下如何在C語言中判斷socket是否已經(jīng)斷開
    2019-05-05
  • c++隱式類型轉(zhuǎn)換示例分享

    c++隱式類型轉(zhuǎn)換示例分享

    這篇文章主要介紹了c++隱式類型轉(zhuǎn)換的二個示例,需要的朋友可以參考下
    2014-03-03

最新評論