一、思路
專注于為中小企業(yè)提供成都做網(wǎng)站、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)鞏義免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。是將[0,1]區(qū)間劃分為n個等長的子區(qū)間。然后,將各個元素按照自己所屬的區(qū)間放入相應(yīng)的桶中,只需要將每個桶的元素排好序,依次輸出各個桶內(nèi)的元素,就得到了有序的元素序列。
二、實現(xiàn)程序:
#includeusing namespace std; const int offset = 105; // 為桶的邊界 const int maxSize = 100; // 數(shù)組的大存儲范圍 // 桶排序 template void BucketSort(T arr[], int n); // 輸出數(shù)組 template void Print(T arr[], int n); int main(int argc, const char * argv[]) { int n, i, arr[maxSize]; cout << "請輸入要排序的數(shù)的個數(shù):"; cin >> n; srand((int)time(NULL)); // 設(shè)置時間為隨機(jī)點 for(i = 0; i < n; i++) // 產(chǎn)生n個隨機(jī)數(shù) arr[i] = rand() % 100; cout << "排序前:"; Print(arr, n); BucketSort(arr, n); // 調(diào)用桶排序 std::cout << "排序后:"; Print(arr, n); return 0; } template void BucketSort(T arr[], int n) { int i, j; T buckets[offset]; for(i = 0; i < offset; i++) // 清零 buckets[i] = 0; // 1.計數(shù),將數(shù)組arr中的元素放到桶中 for(i = 0; i < n; i++) buckets[arr[i]]++; // 將arr[i]的值對應(yīng)buckets數(shù)組的下標(biāo),每有一個就加1 // 2.排序 for(i = 0, j = 0; i < offset; i++) { while(buckets[i] > 0) { // 說明存有元素,相同的整數(shù),要重復(fù)輸出 arr[j] = i; buckets[i]--; j++; } } } // 輸出數(shù)組 template void Print(T arr[], int n) { int i; for(i = 0; i < n; i++) cout << arr[i] << " "; cout << endl; }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。