Сортировка проекта - PullRequest
1 голос
/ 19 марта 2012

Я пытался сделать проект, используя быструю сортировку и сортировку по восходящему слиянию, но я застрял на быстрой сортировке. Мне удалось придумать некоторый код, но всякий раз, когда я пытаюсь запустить свою программу, я получаю сообщение об ошибке «сортировка quickSort (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 ]

0 голосов
/ 19 марта 2012

Ваш первый вызов быстрой сортировки не имеет правильный синтаксис. Метод принимает 3 параметра.

 quickSort(a);

Я думаю, что вы хотите

 quickSort(a, 0, 19); //might be 20 I don't know if it's size or last element index
0 голосов
/ 19 марта 2012

Ваша quickSort функция принимает три аргумента, но вы вызываете ее только с одним.

...