C++二分查找在搜索引擎多文檔求交的應(yīng)用分析
本文實例講述了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,是一種高效的查找。
在搜索中,會用到文檔求交,比如用戶的一個檢索,從各個集群上網(wǎng)上吐數(shù)據(jù),這些文檔之間可能是存在交集的,并且提供的數(shù)據(jù)是有序的,怎么得到交集文檔呢?
這個就可以使用二分查找,在多個有序的文檔數(shù)組中,挑選一個最短的,然后一次從中選取一個元素,在其它數(shù)組中進行二分查找,這樣就可以拿到交集文檔。
希望本文所述對大家的C++程序設(shè)計有所幫助。
相關(guān)文章
Ubuntu18.04下QT開發(fā)Android無法連接設(shè)備問題解決實現(xiàn)
本文主要介紹了Ubuntu18.04下QT開發(fā)Android無法連接設(shè)備問題解決實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06C語言數(shù)據(jù)結(jié)構(gòu)詳細解析二叉樹的操作
二叉樹可以簡單理解為對于一個節(jié)點來說,最多擁有一個上級節(jié)點,同時最多具備左右兩個下級節(jié)點的數(shù)據(jù)結(jié)構(gòu)。本文將詳細介紹一下C++中二叉樹的實現(xiàn)和遍歷,需要的可以參考一下2022-04-04