Skocz do zawartości

Programowanie obiektowe, program do sortowania


Recommended Posts

Napisano

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: 

  1. Tworzę najpierw losowo wygenerowaną tablicę o podanych elementach
  2. Na jej podstawie tworzę wszystkie wspomniane warianty wbudowanymi metodami
  3. 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
    };
    
        
}

 

Napisano

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.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...