0
このコードが動作しないのはなぜですか? 次はquicksortの再帰的なアプローチです。 ピボット・テイクの最初の要素として、より良いパーティショニング・アルゴリズムを提案する人もいますか?JAVA QUICKSORT ...なぜこれが動作しないのですか
import java.util.*;
class QuickSort
{
public static void callQuickSort(int[] array,int left,int right)
{
if(left<right)
{
int s = partition(array,left,right);
callQuickSort(array,left,s-1);
callQuickSort(array,s+1,right);
}
}
public static int partition(int[] array,int left,int right)
{
int pI = left; //pI = partition index
int pivot = array[right];
for(int i=left;i<=right-1;i++)
{
if(array[i] <= pivot)
{
swap(array[i],array[pI]);
pI++;
}
}
swap(array[pI],array[right]);
return pI;
}
static void swap(int a,int b)
{
int temp = a;
a = b;
b = temp;
}
public static void main(String args[])
{
int[] array = {7,2,1,6,8,5,3,4};//array declared
callQuickSort(array,0,7);
System.out.println("Sorted array is - ");
for(int i=0;i<8;i++)
System.out.print(array[i]+"\t");
}
}//end of class
出力は、上記のコードはそのまま配列を返し
7 2 1 6 8 5 3 4
あります。アレイが変わっていないのはなぜですか?
デバッガかなり迅速にこの質問に答えるでしょう。ここ
は、コードが機能しています。任意のJava IDEが付属しています。そして、あなたはおそらく[クイックソートの説明](https://en.wikipedia.org/wiki/Quicksort) – Paul