最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ 實(shí)現(xiàn)帶監(jiān)視哨的順序查找算法

 更新時(shí)間:2020年03月26日 15:21:13   作者:ddl是第一生產(chǎn)力  
這篇文章主要介紹了C++ 實(shí)現(xiàn)帶監(jiān)視哨的順序查找算法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

監(jiān)視哨往往是程序里面的一個(gè)變量,如果是對(duì)數(shù)字排序的話,那么該變量一般是數(shù)值型變量。變量的賦值就相當(dāng)于哨兵,當(dāng)排序數(shù)列中出現(xiàn)與哨兵相等的值或有某種既定關(guān)系出現(xiàn)時(shí),就做一種操作,比如說(shuō)停止排序,或進(jìn)行下一趟排序。

舉例:

順序檢索的算法描述如下

int Search_Sequen(SSTable ST,KeyType key){
//在線性表ST中順序檢索其關(guān)鍵字等于Key的數(shù)據(jù)元素,
//若找到,函數(shù)值為該元素在表中的位置,否則為-1.
ST.element[ST.length].key=key; //設(shè)置監(jiān)視哨
i=0;
while(ST.element[i].key!=key) i++;
if(i<ST.length)
return i;
else
return -1;
}

正文

之前在??途W(wǎng)上做習(xí)題發(fā)現(xiàn)的這個(gè)獨(dú)特的順序查詢,第一次聽(tīng)到“監(jiān)視哨”這個(gè)說(shuō)法,就查了一下

具體實(shí)現(xiàn)就是將數(shù)組的第0位置空,在查找時(shí)將要查找的key插入作為監(jiān)視哨

這樣的好處是不用每次循環(huán)都檢查查找是否結(jié)束,減少了元素比較次數(shù),

最后的返回值要么是元素下標(biāo)要么是數(shù)組第0位(這種情況就是到了監(jiān)視哨)

以下是我的代碼

#include <iostream> 
using namespace std;

template<class T>
int linear_search(T& arr,int key)
{
 int length = sizeof(arr) / sizeof(arr[0]);
 int i = length;
 arr[0] = key;
 while (arr[i] != key)
 {
 i--;
 }
 return i;
}

int main()
{
 int array[] = { 0, 7,9,10,11,15 };
 int len = sizeof(array) / sizeof(array[0]);
 cout << linear_search(array, 10);
 return 0;
}

這里順帶提一下,vs2019會(huì)出現(xiàn)一個(gè)

error C2760: 語(yǔ)法錯(cuò)誤: 意外的令牌“標(biāo)識(shí)符”,預(yù)期的令牌為“;”

的錯(cuò)誤,具體原理我不是很懂,單給出一個(gè)解決辦法:

項(xiàng)目->屬性->C/C++->語(yǔ)言->符合模式->否

最后給自己提一下醒,數(shù)組作為函數(shù)參數(shù)是傳入數(shù)組首位的指針,指針是不帶有數(shù)組其他屬性的,

所以要在函數(shù)內(nèi)獲得數(shù)組的長(zhǎng)度,只能用引用和模板的形式傳入數(shù)組本身,這樣就能用sizeof()獲取數(shù)組長(zhǎng)度了

總結(jié)

到此這篇關(guān)于C++ 實(shí)現(xiàn)帶監(jiān)視哨的順序查找的文章就介紹到這了,更多相關(guān)c++ 監(jiān)視哨順序查找內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解C++ 重載運(yùn)算符和重載函數(shù)

    詳解C++ 重載運(yùn)算符和重載函數(shù)

    這篇文章主要介紹了C++ 重載運(yùn)算符和重載函數(shù)的的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C++?線段樹(shù)原理與實(shí)現(xiàn)示例詳解

    C++?線段樹(shù)原理與實(shí)現(xiàn)示例詳解

    這篇文章主要為大家介紹了C++?線段樹(shù)原理與實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • KMP 算法實(shí)例詳解

    KMP 算法實(shí)例詳解

    這篇文章主要介紹了KMP 算法實(shí)例詳解的相關(guān)資料,MP的關(guān)鍵是求出next的值、先預(yù)處理出next的值,需要的朋友可以參考下
    2017-07-07
  • C/C++多態(tài)深入探究原理

    C/C++多態(tài)深入探究原理

    多態(tài)按字面的意思就是多種形態(tài)。當(dāng)類之間存在層次結(jié)構(gòu),并且類之間是通過(guò)繼承關(guān)聯(lián)時(shí),就會(huì)用到多態(tài)。C++?多態(tài)意味著調(diào)用成員函數(shù)時(shí),會(huì)根據(jù)調(diào)用函數(shù)的對(duì)象的類型來(lái)執(zhí)行不同的函數(shù)
    2022-06-06
  • C語(yǔ)言深入探索浮點(diǎn)數(shù)的使用秘密

    C語(yǔ)言深入探索浮點(diǎn)數(shù)的使用秘密

    在C語(yǔ)言中,浮點(diǎn)數(shù)是一個(gè)很重要的類型,浮點(diǎn)數(shù)可以使數(shù)據(jù)更為精確。浮點(diǎn)數(shù)說(shuō)白了就是帶有小數(shù)點(diǎn)的數(shù)。比如1.6?0.0000?765.2等等,浮點(diǎn)數(shù)具體是怎么用的呢,讓我們一起來(lái)看看
    2022-04-04
  • C++實(shí)現(xiàn)圖片jpg格式變成16位565bmp格式

    C++實(shí)現(xiàn)圖片jpg格式變成16位565bmp格式

    這篇文章主要為大家詳細(xì)介紹了C++如何實(shí)現(xiàn)圖片jpg格式變成16位565bmp格式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2025-03-03
  • C語(yǔ)言實(shí)現(xiàn)模擬USB對(duì)8bit數(shù)據(jù)的NRZI編碼輸出

    C語(yǔ)言實(shí)現(xiàn)模擬USB對(duì)8bit數(shù)據(jù)的NRZI編碼輸出

    今天小編就為大家分享一篇關(guān)于C語(yǔ)言實(shí)現(xiàn)模擬USB對(duì)8bit數(shù)據(jù)的NRZI編碼輸出,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • C++ primer基礎(chǔ)之容器insert

    C++ primer基礎(chǔ)之容器insert

    這篇文章主要介紹了C++ primer基礎(chǔ)之容器insert的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Qt實(shí)現(xiàn)UI界面純代碼示例

    Qt實(shí)現(xiàn)UI界面純代碼示例

    這篇文章主要給大家介紹了關(guān)于Qt實(shí)現(xiàn)UI界面的相關(guān)資料,使用Qt純代碼,實(shí)現(xiàn)了基本的界面,對(duì)大家學(xué)習(xí)或者使用Qt具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • C++ Primer Plus詳解

    C++ Primer Plus詳解

    這篇文章主要為大家詳細(xì)介紹了C++ Primer Plus,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02

最新評(píng)論

武川县| 民权县| 辽阳市| 余庆县| 铜山县| 朔州市| 长子县| 娄烦县| 辽宁省| 庆阳市| 临泽县| 永靖县| 阜城县| 托里县| 吉水县| 曲阜市| 安平县| 南郑县| 会东县| 曲阜市| 福清市| 唐海县| 普兰县| 沂水县| 遂溪县| 五常市| 宝清县| 浠水县| 巴里| 晋城| 莆田市| 西乌珠穆沁旗| 宜宾市| 舟山市| 望江县| 隆回县| 阳原县| 嫩江县| 永安市| 罗甸县| 朔州市|