• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

sortowanie bąbelkowe Java

0 głosów
1,366 wizyt
pytanie zadane 29 czerwca 2018 w Java przez lilianna97 Początkujący (310 p.)
edycja 29 czerwca 2018 przez lilianna97

Witam

Mam problem z sortowaniem bąbelkowym javie. Poniżej jest napisany program . Jak uwzględnić w pętli unoszące się bąbelki? Chodzi o to żeby w tym sortowaniu było widoczne unoszenie się sortowanych elementów.

 

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class BubbleSortTest {

    public static void main(String[] args) {
        System.out.println("Sortowanie bąbelkowe \n");
        Scanner in = new Scanner(System.in);
        System.out.println("Ile liczb wylosować?");
        int quantity = in.nextInt();
        int[] table = drawNumbers(quantity); //losujemy liczby
        
        System.out.println("Tablica nieposortowana");
        System.out.println(Arrays.toString(table)); //wyswietlamy tablicę
        
        bubbleSort(table); //sortujemy tablice
        
        System.out.println("");
        System.out.println("Tablica posortowana");
        System.out.println(Arrays.toString(table)); //wyswietlamy tablicę

    }
    
    public static void bubbleSort(int[] table){  //funkcja sortująca
        boolean hasChange;    //ta zmienna jest flagą; służy do sprawdzania czy w danym przejściu przez tablicę doszło do jakiejść zmiany.
                            //Jeśli nie doszło to żadnej zmiany to znaczy, że wartości są już posortowane i algorytm kończy działanie.
        do {
            hasChange = false;    
            for (int i = 0; i <= table.length - 2; i++) { //przechodzimy przez wszystkie elementy tablicy
                if (table[i]>table[i+1]) { //sprawdzamy parę sąsiednich elementów. Jeśli element pierwszy ma większą wartość niż drugi to zamieniamy je miejscami i ustawiamy wartość flagi na true
                    int temp = table[i];
                    table[i] = table[i + 1];
                    table[i + 1] = temp;
                    hasChange = true;    
                }
            }
        } while (hasChange); //pętla kończy działanie gdy w trakcie iteracji nie doszło do żadnej zmiany.
    }
    
    public static int[] drawNumbers(int quantity){ //funkcja losuje liczby i zwraca wypełnioną nimi tablicę.
        Random random = new Random();
        int[] table = new int[quantity];
        for(int i = 0; i <quantity; i++){
            table[i]=random.nextInt(100);
        }
        
        return table;
    }
    
    
}

 

komentarz 29 czerwca 2018 przez RafalS VIP (122,780 p.)
Dodaj kod w bloczek
komentarz 29 czerwca 2018 przez lilianna97 Początkujący (310 p.)
tzn jaki?

1 odpowiedź

0 głosów
odpowiedź 29 czerwca 2018 przez RafalS VIP (122,780 p.)

W konsoli będzie niewygodnie to zrobić, bo rozumiem, że chcesz osiągnąc coś takiego:

4 3 2 1
Sortowanie:
4 3
    2 1
3 4 2 1
  4 2  
3     1

Nie ma cwanego sposobu, trzeba nawalić spacji.
Ewentualnie możesz czyścić konsole po każdym kroku:

Runtime.getRuntime().exec("cls");

razem z s odczekaniem:

Thread.sleep(1000);

po każdym kroku.

komentarz 8 listopada 2018 przez asgaard Obywatel (1,360 p.)
Witam

Chciałbym podpiąć się pod temat: muszę stworzyć program polegający na sortowaniu bąbelkowym, ale zamiast liczb będę miał podane słowa. Z tego co wyczytałem ma to działać jak słownik alfabetyczny z użyciem Skanera.

Dzięki
komentarz 8 listopada 2018 przez RafalS VIP (122,780 p.)
Generalnie to powinieneś zadać to jako osobne pytanie, ale w czym problem?

Podobne pytania

+1 głos
1 odpowiedź 612 wizyt
pytanie zadane 28 listopada 2024 w C i C++ przez adam234345 Początkujący (400 p.)
0 głosów
1 odpowiedź 532 wizyt
pytanie zadane 8 stycznia 2023 w C i C++ przez Zuzan Początkujący (390 p.)
0 głosów
1 odpowiedź 962 wizyt
pytanie zadane 24 października 2021 w C i C++ przez pita Nowicjusz (180 p.)

93,778 zapytań

142,737 odpowiedzi

323,388 komentarzy

63,382 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...