Проблема с работой кода

281
27 февраля 2017, 11:55

Есть сортировка методами Хоара, QuickSort(secondMethod) и методом пузырька(firstMethod)... но почему код не работает?

import java.io.BufferedReader;
import java.util.Random;
import java.io.IOException;
import java.io.InputStreamReader;
public static void firstMethod(int[] a)
{
    int n = a.length;
    int temp = 0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 1; j < (n - i); j++)
        {
            if (a[j - 1] > a[j])
            {
                temp = a[j - 1];
                a[j - 1] = a[j];
                a[j] = temp;
            }
        }
    }
}
public static void quickSort(int[] a, int l, int r)
{
    int i = l, j = r, m = a[l + (r - l) / 2];
    do
    {
        while (a[i] < m)
        {
            ++i;
        }
        while (a[j] > m)
        {
            --j;
        }
        if (i <= j)
        {
            int temp = a[i];
            a[i] = a[j];
            a[j] = temp;
            i++;
            j--;
        }
    } while (i <= j);
    if (j > l)
    {
        quickSort(a, l, j);
    }
    if (r > i)
    {
        quickSort(a, i, r);
    }
}
public static void randomNum(int[] a)
{
    Random rnd = new Random();
    for (int i = 0; i < a.length; i++)
    {
        a[i] = rnd.nextInt(1000) + 50;
    }
}
public static void decreaseNum(int[] a)
{
    Random rnd = new Random();
    int b = rnd.nextInt(1000);
    for (int i = 0; i < a.length; i++)
    {
        a[i] = b--;
    }
}
public static void increaseNum(int[] a)
{
    Random rnd = new Random();
    int b = rnd.nextInt(100);
    for (int i = 0; i < a.length; i++)
    {
        a[i] = b++;
    }
}
public static void secondMethod(int[] a)
{
    quickSort(a, 0, a.length - 1);
}
public static void main(String[] args)
{
    String s;
    int c, k, n;
    BufferedReader reader1 = new BufferedReader(new InputStreamReader(System.in));
    try
    {
        System.out.println("Method: ");
        s = reader1.readLine();
        k = Integer.parseInt(s);
    } catch (IOException e)
    {
        System.out.println("IO error!");
        return;
    }
    try
    {
        System.out.println("Count: ");
        s = reader1.readLine();
        n = Integer.parseInt(s);
    } catch (IOException e)
    {
        System.out.println("IO error!");
        return;
    }
    int A[] = new int[n];
    System.out.println("Items: ");
    randomNum(A);
    decreaseNum(A);
    increaseNum(A);
    for (int i = 0; i < n; i++)
    {
        try
        {
            s = reader1.readLine();
            A[i] = Integer.parseInt(s);
        } catch (IOException | NumberFormatException e)
        {
            System.out.println("IO error!");
            return;
        }
    }
    if (k == 1)
    {
        firstMethod(A);
    }
    if (k == 2)
    {
        secondMethod(A);
    }
    System.out.println("Sorted: ");
    for (int i = 0; i < n; i++)
    {
        System.out.print(A[i] + " ");
    }
}
READ ALSO
Получить вторую половину строки

Получить вторую половину строки

ЗдравствуйтеЕсть строка наподобие этой: "Истомин Денис - Попырин Алексей 0-0(3-2) 40:15 adv"

323
VK api photos.getAlbums не возвращает ID альбома

VK api photos.getAlbums не возвращает ID альбома

Делаю запрос в ВК апи что бы получить список всех альбомовДанные приходят все что должны прийти кроме ID альбома что очень важно в мое случае

450
Не работают уведомления NotificationCompat

Не работают уведомления NotificationCompat

Добрый день, друзьяЯ новичок в программировании и в данный момент клепаю простое приложение-напоминалку

230
Сохранение значения checkbox

Сохранение значения checkbox

Имеется checkbox в item menu, не получается сохранять его позицию(чекнут или не чекнут)

253