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

sortowanie bąbelkowe Java

Object Storage Arubacloud
0 głosów
985 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,820 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,820 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,300 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,820 p.)
Generalnie to powinieneś zadać to jako osobne pytanie, ale w czym problem?

Podobne pytania

0 głosów
1 odpowiedź 185 wizyt
pytanie zadane 8 stycznia 2023 w C i C++ przez Zuzan Początkujący (390 p.)
0 głosów
1 odpowiedź 540 wizyt
pytanie zadane 24 października 2021 w C i C++ przez pita Nowicjusz (180 p.)
0 głosów
1 odpowiedź 799 wizyt
pytanie zadane 2 lutego 2021 w C i C++ przez Kamirru9 Początkujący (300 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...