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

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

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

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

舉例:

順序檢索的算法描述如下

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

正文

之前在??途W上做習題發(fā)現的這個獨特的順序查詢,第一次聽到“監(jiān)視哨”這個說法,就查了一下

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

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

最后的返回值要么是元素下標要么是數組第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會出現一個

error C2760: 語法錯誤: 意外的令牌“標識符”,預期的令牌為“;”

的錯誤,具體原理我不是很懂,單給出一個解決辦法:

項目->屬性->C/C++->語言->符合模式->否

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

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

總結

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

相關文章

  • Swift編程中的泛型解析

    Swift編程中的泛型解析

    這篇文章主要介紹了Swift編程中的泛型解析,是Swift入門學習中的基礎知識,需要的朋友可以參考下
    2015-11-11
  • 基于C語言實現學生成績管理系統

    基于C語言實現學生成績管理系統

    這篇文章主要介紹了基于C語言實現學生成績管理系統,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Matlab繪制酷炫坐標區(qū)域的方法詳解

    Matlab繪制酷炫坐標區(qū)域的方法詳解

    這篇文章主要為大家詳細介紹了如何利用Matlab編寫一個能讓坐標區(qū)域變得很炫酷的修飾函數,文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-05-05
  • 解決VC++編譯報錯error C2248的方案

    解決VC++編譯報錯error C2248的方案

    這篇文章主要介紹了解決VC++編譯報錯error C2248的方案的相關資料,需要的朋友可以參考下
    2015-11-11
  • C++調用tensorflow教程

    C++調用tensorflow教程

    今天小編就為大家分享一篇關于C++調用tensorflow教程,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • c語言中全局變量的設置方式

    c語言中全局變量的設置方式

    這篇文章主要介紹了c語言中全局變量的設置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 利用C++?OpenCV?實現從投影圖像恢復仿射特性

    利用C++?OpenCV?實現從投影圖像恢復仿射特性

    我們通過相機拍攝的圖片存在各種畸變,其中投影畸變使得原本平行的直線不再平行,就會產生照片中近大遠小的效果。本文將具體介紹如何利用OPenCV實現從投影圖像恢復仿射特性,接下來跟著小編一起學習吧
    2021-11-11
  • C++菱形繼承及解決方法詳解

    C++菱形繼承及解決方法詳解

    這篇文章主要介紹了C++菱形繼承及解決方法詳解,在多繼承結構中,存在著很多問題,比如從不同基類中繼承了同名成員,派生類中也定義了同名成員,這種二義性問題很好解決,加上要訪問的基類的類名限制就可以了,需要的朋友可以參考下
    2023-08-08
  • C++ LeetCode1775通過最少操作次數使數組和相等

    C++ LeetCode1775通過最少操作次數使數組和相等

    這篇文章主要為大家介紹了C++ LeetCode1775通過最少操作次數使數組和相等,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • c++ 有趣的動態(tài)轉換

    c++ 有趣的動態(tài)轉換

    這篇文章主要介紹了c++ 動態(tài)轉換的相關資料,幫助大家更好的理解和使用c++編程,感興趣的朋友可以了解下
    2020-09-09

最新評論