Клонирование массива из одного класса в основной - PullRequest
0 голосов
/ 23 апреля 2020

Что должно произойти здесь, так это то, что он будет отсортировать по пузырям число n (10), а затем рассчитать его и распечатать, сколько времени это займет, однако я не думаю, что он распознает клон? кто-нибудь, помогите мне. не смейся надо мной за то, что задал тупой вопрос :(

public static void main(String[] args) {

    int n = 10;
    int count = 0;

    for (int i=0; i < n; i++)
        count++;

    System.out.println(count);

    long start = System.currentTimeMillis();
    SortingAlgorithms.BubbleSortCS(array.clone());
    long elapsed = System.currentTimeMillis() - start;
    System.out.printf("BubbleSort: %,d\n", elapsed);

}

вот класс

public class SortingAlgorithms {

public static void BubbleSortCS(int[] array) {

    for (int i=0; i <array.length - 1; i++){
        boolean Swap = false;

        for (int j=0; j < array.length - i - 1; j++)
            if(array[j] > array[j+1]){
                int temp = array[j];
                array[j] = array[j+1];
                array[j+1] = temp;
                Swap = true;
            }
        if(Swap == false)
            break;

    }
}
}

1 Ответ

2 голосов
/ 23 апреля 2020

Если вы сортируете на месте (у массива сортировки нет возвращаемого типа), не давайте клон, дайте ссылку. Если вы дадите клон, исходный массив не будет затронут вообще. Реальные алгоритмы сортировки пузырьков выглядят хорошо.

SortingAlgorithms.BubbleSortCS(array); // don't pass array.clone().
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...