Artur Orysz Napisano Kwiecień 27, 2016 Zgłoś Udostępnij Napisano Kwiecień 27, 2016 Witajcie! Mam do wykonania program na zaliczenie mierzący szybkość sortowaną rożnymi metodami tablicy składającej się z 100000 elementów, każdy element ma być z zakresu od 2000 do 50000. Następnie testujemy prędkość sortowania dla tablicy nieposortowanej, posortowanej do połowy, posortowanej w kolejności rosnącej i kolejności malejącej: Wymyśliłem to sobie tak: Tworzę najpierw losowo wygenerowaną tablicę o podanych elementach Na jej podstawie tworzę wszystkie wspomniane warianty wbudowanymi metodami Z ich użyciem testuję wszystkie sortowania. Jestem skrajnie początkujący w Javie, chcę zrobić to zadanie tylko przy użyciu klas. Problem w tym że nie do końca łapie o co chodzi :(, nie wiem jak przekazać te posortowane tablice dalej jako obiekty import java.util.Arrays; import java.util.Random; public class main { //tablica podstawowa public static void main(String args[]) { int low = 2000; int high = 50000; int size = 100000; int[] baseArray = new int[size]; int[] randomSorted = baseArray.clone(); createArray(baseArray, size, low, high); sortArrays(baseArray, size, low, high); // jak wywołać tu np: tu y //bubbleSort(); //insertionSort(); //dla każdej tablic // #### Tworzę tablice szablonów #### public static void createArray(int[] baseArray, int size, int low, int high) { for (int i = 0; i < baseArray.length; i++) { Random randomNumber = new Random(); baseArray[i] = randomNumber.nextInt(high - low) + low; } System.out.println(Arrays.toString(baseArray)); } //Kopiuje bazową tablicę,tworząc nową tablicę dla: public static void sortArrays(int[] baseArray, int size, int low, int high) { //dla danych losowych int[] randomSorted = baseArray.clone(); System.out.println("Dla danych losowych " + Arrays.toString(randomSorted)); //dla danych posortowanych w kolejności rosnącej int[] ascendingSorted = baseArray.clone(); Arrays.sort(ascendingSorted); System.out.println("Dla danych posortowanych w kolejności rosnącej " + Arrays.toString(ascendingSorted)); //dla danych częściowo posortowanych int[] partiallySorted = baseArray.clone(); //Sortuj tablicę tylko do połowy (czyli od 0 do "długości" skopiowanej tablicy dzielonej na pół) Arrays.sort(partiallySorted, 0, (partiallySorted.length / 2)); System.out.println("Dla danych częściowo posortowanych (do połowy) " + Arrays.toString(partiallySorted)); //oraz dla danych posortowanych w kolejności malejącej int[] descendingSorted = baseArray.clone(); for (int i = 0; i < descendingSorted.length; i++) { descendingSorted[i] = ascendingSorted[ascendingSorted.length - 1 - i]; } System.out.println("Dla danych posortowanych w kolejności malejącej " + Arrays.toString(descendingSorted)); } // public static void bubbleSort() { //tu kod np dla sortowania bąbelkowego }; public static void insertionSort() { //tu kod np dla sortowania bąbelkowego }; } Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
andrus19 Napisano Kwiecień 27, 2016 Zgłoś Udostępnij Napisano Kwiecień 27, 2016 no to podajesz w tych metodach jako argument tablicę czyli musisz zadeklarować tak: public static void bubbleSort(int[] arrayToSort){ //tutaj sortujesz odpowiednią metodą } zwracać nie musisz tych tablic aczkolwiek gdybys chciał to zamiast voida podajesz tablicę intów czyli public static int[] bubbleSort(int[] arrayToSort){ //... } i wywyłujesz tak każdą metodę sortowania. Przed wywołaniem i po wywyłaniu metody sortowania mierzysz czas wykonania i wypisujesz odpowiednie komunikaty. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.