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

Błąd w programie o sortowaniu bąbelkowym

HackNation - ogólnopolski hackathon
0 głosów
294 wizyt
pytanie zadane 29 października 2017 w Java przez barteku12 Obywatel (1,340 p.)

Witam serdecznie, 

chcialem napisać program sortujący bąbelkowy na przykładzie filmu pana Mirka z C++ o algortymach i sortowaniu. 

Doszedłem jakoś do tego, że w ogóle mi kompiluje ;)

Jednak liczby nie wychodzą takie jak powinny.

Pierwsza pętla wypisuje wylosowane liczby w podanym zakresie i wypisze np:230,551,146,872.

A ostatnie pętla, która powinna ustawić je rosnąco, co prawda ustawi ale dubluje niektóra np: 230,230, 551,872.

A jedna pomija np. Nie wiem czemu tak jest, pewnie jakoś źle pętle zrobiłem. 

Wklejam kod i dziękuję z góry za pomoc. 

package algo;

import java.util.LinkedList;
import java.util.Random;
import java.util.Scanner;

public class Algo {

    public static void main(String[] args) {
        Scanner s= new Scanner(System.in);
 int n =s.nextInt();
 int [] tab = new int [n];
        
        
        LinkedList m = new LinkedList();
        Random generator = new Random();
  // Klasą użytą tutaj jest Random, generator to jakby nazwa obiektu
  
for (int i=0; i<tab.length; i++)
  {
      tab[i]=generator.nextInt(1000);
      
      System.out.println(" "+tab[i]);
// w nawiasie podajemy przedział, tutaj od 0 do 1000
// dodajemy obiekt random do listy
  }
  for( int j=1; j<n; j++  )
  { 
      for(int k=n-1; k>=1; k--)
      {  if(tab[k]<tab[k-1])
      { int bufor;
        bufor=tab[k-1];
        tab[k-1]=tab[j];
        tab[k]=bufor;
      }
     }
  }
        System.out.println(" ");
  for (int i=0; i<tab.length; i++)
  { 
     System.out.println(" "+tab[i]);
}
  }
        
    }

 

komentarz 29 października 2017 przez Aisekai Nałogowiec (42,190 p.)
Offtop:

17 linijka: generator to nie tak jakby nazwa obiektu, tylko nazwa obiektu.

Komentarze, z tego co kojarzę, powinny dotyczyć tego co jest pod nimi (w sensie jeżeli np tworzysz już ten obiekt klasy Random, to powinieneś ten komentarz napisać przed utworzeniem obiektu).

1 odpowiedź

+1 głos
odpowiedź 29 października 2017 przez Mateusz51 Nałogowiec (28,180 p.)
wybrane 30 października 2017 przez barteku12
 
Najlepsza
33 linijka: Nie powinno być tab[k-1] = tab[k]??
komentarz 30 października 2017 przez barteku12 Obywatel (1,340 p.)
Tak, tu był błąd, już działa, dzięki ;)

Podobne pytania

0 głosów
0 odpowiedzi 248 wizyt
pytanie zadane 25 maja 2020 w Java przez miko98 Nowicjusz (150 p.)
0 głosów
0 odpowiedzi 112 wizyt
pytanie zadane 18 kwietnia 2020 w Java przez princeV Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 369 wizyt
pytanie zadane 8 marca 2024 w C i C++ przez viktor23 Nowicjusz (130 p.)

93,608 zapytań

142,531 odpowiedzi

323,004 komentarzy

63,102 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

Kursy INF.02 i INF.03
...