2012-03-19 27 views
1

私はクイックソートとボトムアップマージソートを使ってプロジェクトをやろうとしていましたが、クイックソートに取り組んでいます。私はいくつかのコードを思い付くことができましたが、私は私のプログラムを実行しようとするたびにエラーが表示されます "クイックソート(int []、int、int)ソートでは(int [])に適用できません" は、ここでは、コードの...プロジェクトを並べ替える

import java.util.Random; 
public class main { 


    public static void main(String[] args) { 
     Random gen = new Random(); 
     int[] a = new int[20]; 

     for (int i = 0; i < a.length; i++) 
     a[i] = gen.nextInt(100); 

     printArray(a); 
     quickSort(a); 
    } 

    private static void printArray(int[] a){ 
     for (int i : a) 
     System.out.print(i + " "); 
     System.out.println(""); 
    } 
     private static void quickSort(int a[], int left, int right){ 
     int i = left, j = right; 
     int tmp; 
     int pivot = a[(left + right)/2]; 
     while (i <= j) { 
      while (a[i] < pivot) 
        i++; 
      while (a[j] > pivot) 
        j--; 
      if (i <= j) { 
        tmp = a[i]; 
        a[i] = a[j]; 
        a[j] = tmp; 
        i++; 
        j--; 
     } 
    } 
    if (left < j) 
     quickSort(a, left, j); 
    if (i < right) 
      quickSort(a, i, right); 
} 
+2

をしたいと思います

quickSort(a); 

は、なぜこれがCをタグ付けされた++? – Marlon

答えて

0

あなたquickSort機能は3つの引数を取りますが、あなたは一つだけでそれを呼び出しています。

0

quicksortの最初の呼び出しに正しい構文がありません。このメソッドは3つのパラメータを取ります。私はあなたが

quickSort(a, 0, 19); //might be 20 I don't know if it's size or last element index 
関連する問題