binarySearch – nie rozumiem dlaczego tak pokazuje.

0
3
18
27
11
21
1
6
9
6
14

Sortowanie: [3, 18, 27, 11, 21, 1, 6, 9, 6, 14]
Sortowanie rosnąco: [1, 3, 6, 6, 9, 11, 14, 18, 21, 27]
Pozycja elementu: 1

Tworzę losową tablicę, losowanie 10 elementów do maksymalnie liczby 30. Tablica wylosowała się, następnie zrobiłem sortowanie, potem sortowanie rosnąco oraz metodę binarySearch, które pokazuje 1. Dlaczego pokazuje 1, jak to ma się do powyższego wyniku? Wiem, że binarySearch wyszukuje elementy tablicy, jeśli jest ona posortowana rosnąco - to już mam. W posortowanej tablicy szukam elementu 3, metoda binarySearch zwraca jego pozycję, jeśli elementu nie ma to jest jakaś liczba na minusie.

1

Elementy w tablicach są indeksowane od 0. Jeśli zwraca Ci 1 to chodzi o drugi element, czyli ok według tego co podałeś po sortowaniu rosnącym.

0

Ok, już rozumiem! Dzięki.

       int wiersz = 10;
        int kolumna = 10;
        int[][] tablica3 = new int[wiersz][kolumna];

        for (int i = 0; i < wiersz; i++) {
            for (int j = 0; j < kolumna; j++) {
                tablica3[i][j] = (i + 1) * (j + 1);
            }
        }

        for (int i = 0; i < wiersz; i++) {
            for (int j = 0; j < kolumna; j++) {
                System.out.println(tablica3[i][j] + "\t");
            }
            System.out.println();
        }

Mogę to jakoś zrobić, żeby wypisało mi po prostu kostkę 10x10? Bo teraz wypisuje mi:

1
2
3
4
5
6
7
8
9
10

2
4
6
8
10
12
14
16
18
20

itd.

0

To mój pierwszy kod w Java :]

       int wiersz = 10;
        int kolumna = 10;
        String wiersz_str = "";
        int[][] tablica3 = new int[wiersz][kolumna];
 
        for (int i = 0; i < wiersz; i++) {
            wiersz_str = "";
            for (int j = 0; j < kolumna; j++) {
                tablica3[i][j] = (i + 1) * (j + 1);
                wiersz_str = wiersz_str + String.valueOf(tablica3[i][j]) + ' ';
            }
            System.out.println(wiersz_str);
        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1