本文實例講述了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++程序設計有所幫助。
新聞熱點
疑難解答
圖片精選