C++二分查找在搜索引擎多文檔求交的應(yīng)用分析
本文實(shí)例講述了C++二分查找在搜索引擎多文檔求交的應(yīng)用。分享給大家供大家參考。具體如下:
int search2(int array[], int n, int v) { int left, right, middle; left = 0, right = n - 1; while (left <= right) { middle = (left + right) / 2; if (array[middle] > v) { right = middle - 1; } else if (array[middle] < v) { left = middle + 1; } else { return middle; } } return -1; } int search3(int array[], int n, int v) { int left, right, middle; left = 0, right = n; while (left < right) { middle = (left + right) / 2; if (array[middle] > v) { right = middle; } else if (array[middle] < v) { left = middle + 1; } else { return middle; } } return -1; }
二分查找的算法復(fù)雜度是log2n,是一種高效的查找。
在搜索中,會(huì)用到文檔求交,比如用戶的一個(gè)檢索,從各個(gè)集群上網(wǎng)上吐數(shù)據(jù),這些文檔之間可能是存在交集的,并且提供的數(shù)據(jù)是有序的,怎么得到交集文檔呢?
這個(gè)就可以使用二分查找,在多個(gè)有序的文檔數(shù)組中,挑選一個(gè)最短的,然后一次從中選取一個(gè)元素,在其它數(shù)組中進(jìn)行二分查找,這樣就可以拿到交集文檔。
希望本文所述對(duì)大家的C++程序設(shè)計(jì)有所幫助。
相關(guān)文章
Ubuntu18.04下QT開(kāi)發(fā)Android無(wú)法連接設(shè)備問(wèn)題解決實(shí)現(xiàn)
本文主要介紹了Ubuntu18.04下QT開(kāi)發(fā)Android無(wú)法連接設(shè)備問(wèn)題解決實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06Qt讀寫(xiě)CSV文件的三種方式及優(yōu)劣對(duì)比
最近的要用到CSV格式的數(shù)據(jù),所以這篇文章講述一下QT讀取CSV文件數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Qt讀寫(xiě)CSV文件的三種方式及優(yōu)劣對(duì)比的相關(guān)資料,需要的朋友可以參考下2023-11-11C語(yǔ)言實(shí)現(xiàn)航班管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)航班管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12C++虛函數(shù)的實(shí)現(xiàn)機(jī)制分析
這篇文章主要介紹了C++虛函數(shù)的實(shí)現(xiàn)機(jī)制分析,需要的朋友可以參考下2014-07-07C語(yǔ)言詳細(xì)分析浮點(diǎn)數(shù)在內(nèi)存中的儲(chǔ)存
我們?cè)谌粘I钪泻途幊讨卸紩?huì)用到小數(shù),比如:3.1415926、29.9、1E10(科學(xué)計(jì)數(shù)法也是浮點(diǎn)型)。在C語(yǔ)言中的浮點(diǎn)型類(lèi)型有:float,double,long double。那么浮點(diǎn)數(shù)在這些浮點(diǎn)型的內(nèi)存之中又是如何儲(chǔ)存的呢,這就是今天我們要分享的2022-06-06C++實(shí)現(xiàn)讀取特定路徑下文件夾及文件名的方法
這篇文章主要介紹了C++實(shí)現(xiàn)讀取特定路徑下文件夾及文件名的方法,需要的朋友可以參考下2014-07-07C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)詳細(xì)解析二叉樹(shù)的操作
二叉樹(shù)可以簡(jiǎn)單理解為對(duì)于一個(gè)節(jié)點(diǎn)來(lái)說(shuō),最多擁有一個(gè)上級(jí)節(jié)點(diǎn),同時(shí)最多具備左右兩個(gè)下級(jí)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)。本文將詳細(xì)介紹一下C++中二叉樹(shù)的實(shí)現(xiàn)和遍歷,需要的可以參考一下2022-04-04