quicksort

    -2熱度

    1回答

    我試圖在java中實現快速排序,但它不起作用。 我真的不知道它出錯了。 這是我到目前爲止有: public static void quicksort(int[] array, int left, int right) { if (left >= right) { return; } int pivot = new SplittableRandom().n

    1熱度

    1回答

    我正在嘗試編寫一個程序,該程序需要一個數組,有效地對數組viaquickSort進行排序,然後對於排序數組中的每對具有通過整數參數傳遞的指定差異方法中的參數),它根據指定的差值輸出對。該方法有效地返回一個ArrayList與不同的整數對。例如。讓我們假設我有一個數組,就像{16,12,7,8,4,13,9,20}。如果通過的整數是4,它將返回的對是 (4,8)(8,12)(9,13)(12,16)

    0熱度

    1回答

    我必須寫一個快速排序算法與隨機樞軸隨機樞軸所以我創建以下代碼: public void quickSort(int left, int right) { if(a.length == 1) { System.out.println("Only one element."); } else { int l = left;

    0熱度

    3回答

    我一直算法的問題,需要我執行快速排序算法的鏈表和數組。 我已經完成了這兩個部分,算法正在工作,但似乎我的快速排序鏈接列表實現中有一些錯誤。 這是我的快速排序鏈接列表實現。 public static void SortLinkedList(DataList items, DataList.Node low, DataList.Node high) { if(low != nu

    1熱度

    1回答

    我已經寫了一個快速排序程序,該程序計算按照升序對數組排序進行的交換次數。在這個程序中,我使用了一個全局變量來計算交換次數,因爲我無法確定如何通過多個遞歸級別保留值。我理解這個概念,即當函數自我摺疊時,通過傳遞多級遞歸來保留該值,但我顯然無法實現它。有人可以建議我這樣做嗎? import java.util.Scanner; public class QuickSort { // g

    2熱度

    2回答

    對於合併排序和快速排序,我試圖想出最糟糕的情況。如果我是正確的,當所有東西都排序後,合併排序的最壞情況O(nlogn)。快速排序最糟糕的情況是當數據透視表處於最不理想的位置,並且數組被排序,所以它變成了O(n^2)。我想知道這是否是正確的,所以如果不是,請糾正。 我真正的問題是如果快速排序的樞軸位於數組的中間,那麼數組必須看起來像是爲了O(n^2)?

    0熱度

    1回答

    執行下面的快速排序算法有什麼問題。調試報告「訪問衝突寫入位置」。我找不到它。我是否應該將參數的位置作爲參數傳遞給sort和partition函數?此代碼基於此交互式在線演示:http://me.dt.in.th/page/Quicksort。 #include <cstdio> #include <cstdlib> #include <cstdint> #include <utility>

    1熱度

    1回答

    我寫的程序是提供一個非遞歸實現,用於使用堆棧實現在QuickSort類中進行快速排序。我覺得我的代碼在sort()方法中是正確的。由於實現了Comparable接口,我遇到的問題是初始化Stack。當我的方法有一個「extends Comparable」時,我的Stack應該被參數化爲什麼,因爲在這種情況下,E是Stack的錯誤參數。 package edu.csus.csc130.spring2

    0熱度

    1回答

    我想分區的數組,使數組的前半部分中的每個元素小於數組後半部分中的每個元素。這與快速排序中使用的分區算法相同。出於某種原因,我可以使數組A = [2, 8, 7, 1, 3, 5, 6, 4]工作,但A = [7, 3, 6, 1, 9, 5, 4, 8]將無法​​工作。 def partition(A): x = A[len(A)-1] i = -1 for j in

    0熱度

    1回答

    我知道我的問題有多個答案,我明白爲什麼它是,但我的主要問題是如何克服這個錯誤。我知道我正嘗試訪問我無法訪問的內存,但我不明白我是如何做到這一點的。 #include <iostream> #include <string> #include <stdlib.h> using namespace std; int arr[] = {4,5,2,1,3}; int lengd = size