2012-03-19 2 views
1

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

Почему это помечено C++? – Marlon

ответ

0

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

0

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

quickSort(a); 

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^