quicksort

    2熱度

    2回答

    沒有人有任何想法,爲什麼我會在下面的代碼來讓我的快速排序堆棧溢出?: private int[] concat(int[] less, int inxl, int pivot, int inxm, int[] more) { int[] concated = new int[ less.length ]; for(int inx = 0; inx < inxl

    3熱度

    1回答

    我是Ruby的新手,幾天前剛開始接觸這門語言。作爲練習,我試圖實現一個簡單的快速排序 class Sort def swap(i,j) @data[i], @data[j] = @data[j], @data[i] end def quicksort(lower=0, upper = @data.length - 1) return nil if

    7熱度

    4回答

    排序下面陣列的使用快速排序, [6, 11, 4, 9, 8, 2, 5, 8, 13, 7] 樞軸應選擇爲第一和最後一個元素,即(a[0] + a[size - 1])/2 (rounded down)的算術平均值。 顯示所有重要步驟,例如分區和對算法的遞歸調用。 我明白如何使用快速排序來排序數組,但是我不知道如何計算數據透視。 是對樞軸通過6 + 7 = 13然後13/2 = 6.5計算(

    1熱度

    2回答

    我在java中使用堆棧時遇到了一些問題...我使用ArrayList實現快速排序 - 我將在最後附上我的完整代碼,但以下是相關的部分(請牢記我已經調試了幾個小時,完全不知道出了什麼問題,所以如果你看到事情以奇怪的方式完成,那很可能是因爲我試圖檢查那裏的錯誤): 那顯然是正在執行的調用次數過多: QuickSort(numArray, m+1, right); 在這裏失敗: //Swap p

    2熱度

    2回答

    我的快速排序算法遇到了一些麻煩。它對一個沒有重複值的數組很有效。但是,一旦我有一個2 +重複數組,它會陷入無限循環。例如,如果我的陣列是: int[] array = {44, 53, 36, 186, 22, 162, 22}; public void quick_sort(int[] data, int low, int high) { // 1 or 0 items are

    3熱度

    2回答

    我想在java中實現快速排序。但是,我正在經歷奇怪的行爲。我的算法適用於70個或更少的項目,但以上任何項目都會使整個Java應用程序凍結。這是函數調用的限制還是我正在使用的內存量? 我通常不使用快速排序,所以我的實現可能有點過,但我想一般的邏輯是正確的: int data[]; public void QuickSort(int start, int end) { if(sta

    10熱度

    1回答

    我們必須爲自己的可比較的基類做一個優化的快速排序。對於我的生活,我不能讓它工作。該算法看起來很簡單,但我看不出讓我的代碼工作。我有一個擴展Comparable的DateTime類,用於測試,並且排序似乎有效,但每20個左右運行一個單獨的值是不合適的,當我在數組塊上使用插入排序總數超過8個,全部都會被擊暈。 在我的分區方法中,當我將樞軸移動到末尾並在開始和結束時開始我的指針時,這種方式有效 - 1.

    5熱度

    2回答

    如果排序算法使用等號鍵保留任意兩個元素的相對順序,則它是穩定的。在哪些條件下quicksort穩定? 快速排序是穩定的,當沒有項目通過,除非它有一個較小的關鍵。 其他什麼條件使其穩定?

    0熱度

    3回答

    這是我做了我的比較函數傳遞給快速排序(): int charCompare(const void* ptr1, const void* ptr2) { char c1 = *(char*)ptr1; char c2 = *(char*)ptr2; return c1 - c2; } 而這正是實現: char buffer[SIZE]; /* * buffe

    0熱度

    2回答

    這裏實現快速排序的一些問題是我的代碼: public class Main { public static void main(String[] args) { int[] temp = {4,2,6,4,5,2,9,7,11,0,-1,4,-5}; quickSort(temp); for(int s : temp) System.out