cuda中的二分查詢

2022-02-05 16:13:29 字數 726 閱讀 2348

通常,在做高效能計算時,我們需要隨機的連線某些點。這些點都具有自己的度量值,顯然,度量值越大的值隨機到的概率就會越大。因此,採用加權值得方法:

void getdegreesum(dg *g)

}

這樣degreesum陣列中儲存的即是乙個有序的陣列,隨機生成rand(max),隨機數所在的區域的下表就代表選取到的點。

傳統的二分查詢中,是指定元素,然後查詢是否在其中,典型的演算法如下:

int bsearchwithoutrecursion(int array, int low, int high, int

target)

//the array does not contain the target

return -1

;}

其中low與high可以根據自己的需求,來定義

問題背景:

指定的乙個有序陣列,給定乙個隨機數,要查詢隨機數所在的區域,即大於前乙個值,小於當前值,而當前值的下標,即使所需:

實現方式:

__inline__ __device__ int binarysearch(uint *arr,uint length,uint

target)

else

}return

left;

}

引用的時候,直接在__global__函式中使用即可,返回值即使要查詢的下標。

cuda中的二分查詢

通常,在做高效能計算時,我們需要隨機的連線某些點。這些點都具有自己的度量值,顯然,度量值越大的值隨機到的概率就會越大。因此,採用加權值得方法 void getdegreesum dg g 這樣degreesum陣列中儲存的即是乙個有序的陣列,隨機生成rand max 隨機數所在的區域的下表就代表選取...

迭代二分查詢二分查詢

在寫這篇文章之前,已經寫過了幾篇關於改迭代二分查詢主題的文章,想要了解的朋友可以去翻一下之前的文章 bentley在他的著作 writing correct programs 中寫道,90 的計算機專家不能在2小時內寫出完整確正的二分搜尋演算法。難怪有人說,二分查詢道理單簡,甚至小學生都能明確。不過...

二分查詢的平均查詢長度 二分查詢

資料的查詢在計算機的操作中非常常見,那麼我們應該怎樣在計算機中實現查詢操作呢?最簡單的一種方法 傻找 也就是乙個乙個的找,我們把陣列中的每個元素都和我們想要查詢的目標元素進行比對,看一下列表中是否有和這個元素相同的元素,如果我們想要尋找的那個目標元素在列表 現了,那麼就宣告查詢成功,這種演算法寫成 ...