2015-08-28 66 views
-3
void bckuetsrot(int data[], int n) 
{ 
    int x = 65537; 
    int bckuet[x]; 
    for (int i = 0; i < x; i++) 
    { 
     buckets[i] = 0; 
    } 

    for (int i = 0; i < n; i++) 
    { 
     bckuet[data[i]]++; 
     q++; 
    } 
    for (int i = 0, j = 0; j < x; j++) 
    { 
     for (int k = bckuet[j]; k > 0; k--) 
     { 
       data[i++] = j; 
       q++; 
     } 
    } 

    reverse(data, data + n); 
} 

reverse(data, data+n);做什麼?它是否反轉了算法的代碼或輸出的程序?或者它有其他含義/定義?需要說明這個代碼中'reverse(data,data + n)'的作用

我需要一些澄清。任何幫助將不勝感激。

+2

我假設'使用命名空間標準;'在該代碼中的某個地方,如果是這樣,請檢查http://www.cplusplus.com/reference/algorithm/reverse/ –

+0

當處理大量這樣的數據時,您應該將其分配到堆上,否則可能會遇到堆棧溢出。 – Lundin

回答

0

反轉該範圍中的元素的順序(第一,最後一個)

雙向迭代到該序列的初始和最終位置被顛倒。使用的範圍是[first,last),它包含first和last之間的所有元素,包括first指向的元素,但不包含last指向的元素。