radix-sort

    0熱度

    1回答

    當用戶請求時,MySQL使用quicksort對結果集進行排序。現在,平均而言,quicksort的效率爲O(Nlog N),這是可以接受的(儘管最壞的情況有時可能會達到O(N^2)。現在在大多數情況下都可以,但假設我有一個列,比如pin-number,總是有6個數字,並且一個特定的查詢獲取數百萬行並根據該鍵對它們進行排序。在這種情況下,radix-sort不是一個更好的選擇,它給出了一個線性順序

    4熱度

    1回答

    如果我們必須對每個4位數的7個數字進行排序,需要多少次比較?(基數排序) 選項是-40,38,47,280。 我的解決方案 - 我採取了10個桶(0至9)(鏈表)。然後對於第i個數字的每個數字,我已將它放入與其數字值相對應的Bucket中。然後我將這些數字收回到陣列中。這個過程重複所有的數字,因此我的原始數組被排序。比較總數= 10 * 4 = 40(10,因爲我遍歷所有桶以查找相應的桶)。 現在

    1熱度

    2回答

    我有一組整數值,我想用Thrust對它們進行排序。是否有可能在此排序中僅使用一些高位/低位。如果可能的話,我不想使用用戶定義的比較器,因爲它會將使用的算法從基數排序更改爲合併排序並相當多地增加已用時間。 我認爲,當所有的數字有一點相同的值,而排序位被跳過,所以它是可行的使用盡可能低的比特數,並希望這將是足夠的。 (即:用於使用與8位字符和設定高3位到0 5個比特) 實施例: sort<4, 0>(

    0熱度

    1回答

    我有一個隊列和一個隊列數組。 buckets是數組,而collector是隊列。 pass是一個整數,用於保存它傳遞的值。我有一個方法返回給我的隊列中第一個單元格的名稱爲peek()。 shiftOne()是一種將一個隊列的頭部移動到另一個隊列的尾部的方法。 現在這個代碼不爲我工作 bucket[((collector.peek()>>(pass * 8)) &0xFF)].shiftOne(co

    4熱度

    2回答

    我知道如何使用基數排序整數。 但如何使用它來排序字符串?或浮點數?

    1熱度

    1回答

    我讀過一個基數排序的實現,它使用小於10的int數據類型,即它們由一個sig-fig組成。 (例如,1,0,3,4,9,...只是清楚)。這個實現不是太困難,但是大於十的數字呢?如何比較第一遍中某個位置的數字,然後比較第二遍中十位的數字,等等,而不顯式地將數組的元素轉換爲字符串或字符類型。 (或者是這只是必要?)

    0熱度

    1回答

    我的家庭作業有問題,我不知道我在哪裏出錯了。我必須設計一個用於基數排序的函數,使用bucket和k rounds。我需要保留桶中列表項的順序,因此我需要爲每個桶保留兩個點 - 前後。 但是,當我編譯我的代碼並運行帶有10個需要排序的數字的測試代碼時,我的輸出僅包含3個數字。如果它的20個號碼,它只打印2.你能幫我嗎?這是我的代碼,謝謝你的時間。編輯:由leastSigDig我的意思是有效數字我必須

    2熱度

    1回答

    我正在研究的基數排序算法,但我不明白一些原始源代碼的。 static void rad_sort_u(unsigned *from, unsigned *to, unsigned bit) { if (!bit || to < from + 1) return; unsigned *ll = from, *rr = to - 1,tmp; while (1) {

    8熱度

    4回答

    我想創建一個使用隊列的radix sort實現。 我找不出我的代碼的哪一部分有問題或應讀取哪些資源。 我的代碼可能是完全錯誤的,但這是我的實現沒有任何幫助(我還沒有采取數據結構&算法課程呢)。 我創建了一個函數,但它沒有工作。在進行研究時,我看到了一些代碼示例,但對我來說它們似乎更加複雜。 首先我想找到的所有整數 然後的至少顯著位數他們排隊元素,其下標比賽, 然後後排序複製所有隊列結束11隊列元素

    1熱度

    2回答

    我想知道下面的基數排序程序的邏輯。 #include <stdio.h> #include <limits.h> #include <stdlib.h> typedef unsigned uint; #define swap(a, b) { tmp = a; a = b; b = tmp; } #define each(i, x) for (i = 0; i < x; i++) /