C++二分查找在搜刮引擎多文檔求交的運用剖析。本站提示廣大學習愛好者:(C++二分查找在搜刮引擎多文檔求交的運用剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是C++二分查找在搜刮引擎多文檔求交的運用剖析正文
本文實例講述了C++二分查找在搜刮引擎多文檔求交的運用。分享給年夜家供年夜家參考。詳細以下:
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; }
二分查找的算法龐雜度是log2n,是一種高效的查找。
在搜刮中,會用到文檔求交,好比用戶的一個檢索,從各個集群上彀上吐數據,這些文檔之間能夠是存在交集的,而且供給的數據是有序的,怎樣獲得交集文檔呢?
這個便可以應用二分查找,在多個有序的文檔數組中,遴選一個最短的,然後一次從當選取一個元素,在其它數組中停止二分查找,如許便可以拿到交集文檔。
願望本文所述對年夜家的C++法式設計有所贊助。