Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 83

Сортировка пузырьком

14.02.2013, 14:09. Показов 2595. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Подскажите почему мой код не сортирует .(
И подскажите какой способ сортировка самый быстрый для больших массивов.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Sort {
    public static void main(String[] args) {
        int[] arr = {'3', '2', '5', '1', '4', '6'};
        int rez;
        
        for(int i=0; i<arr.length-1; i++) {
            for(int j=i+1; j<arr.length; j++)
                if(arr[i] > arr[j]) {
                    arr[i] = arr[j];
                    arr[j] = arr[i];
                }
            rez = arr[i];
            System.out.println(rez + " ");
            }
        }
    }
println выводит:
49
49
49
49
52
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.02.2013, 14:09
Ответы с готовыми решениями:

Сортировка пузырьком
Подскажите, пожалуйста, что не так с if? Почему Eclipse ругается? public class ArraySort { public static void main(String...

Сортировка пузырьком
Не могу найти ошибку. public class SortArray { public static int sort(int array1) { boolean flag=true; ...

Сортировка пузырьком
Привет, попробовал написать сортировку пузырьком. Хочу вывести счетчик j во втором цикле for. Выводит единицу. Помогите найти ошибку ...

10
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
14.02.2013, 14:50
1. Какой вы массив пытаетесь инициализировать? Как инициализировать массив элементов int?
Java
1
int[] arr = {'3', '2', '5', '1', '4', '6'};
2. При действиях
Java
1
2
arr[i] = arr[j];
arr[j] = arr[i];
Что за значение будет в arr[i] во второй строке?
3. Почему -1?
Java
1
i<arr.length-1;
0
Музыка нас Связала
 Аватар для Fonduee
232 / 232 / 52
Регистрация: 26.03.2008
Сообщений: 616
14.02.2013, 15:02
Цитата Сообщение от Drygba Посмотреть сообщение
3. Почему -1?
Java
1
i<arr.length-1;
В "Bubble Sort"-e сравнивается текущий элемент со следующим. -1 ставиться для того, чтобы не выйти за пределы эррея.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
14.02.2013, 15:06
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package sort;
 
import java.util.Arrays;
 
public class SortAlgorithm {
    public static void main(String[] args) {
        Integer[] a = { 10, 3, 6, 5, 7, 2, 9 };
        bulb(a);
        System.out.println(Arrays.toString(a));
    }
 
    static <T extends Comparable<T>> void bulb(T[] t) {
        for (int i = 0; i < t.length; i++) {
            for (int j = 0; j < t.length - 1; j++) {
                if (t[j].compareTo(t[j + 1]) > 0) {
                    swap(t, j + 1, j);
                }
            }
        }
    }
 
    static <T> void swap(T[] t, int i, int j) {
        T tmp = t[j];
        t[j] = t[i];
        t[i] = tmp;
    }
}
0
0 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 83
14.02.2013, 17:51  [ТС]
прошу допишите именно мой код!
я так понимаю, у меня была явная ошибка в:
Java
1
2
arr[i] = arr[j];
arr[j] = arr[i];
надо сделать чтото типа:
Java
1
2
3
4
5
                if(arr[i] > arr[j]) {
                    int b = arr[i];
                    arr[i] = arr[j];
                    arr[j] = b;
                }
но всё равно вылазит:
49
50
51
52
53
почему же??? откуда вообще цифра 9 взялась?
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
14.02.2013, 17:55
Цитата Сообщение от Exxtazy Посмотреть сообщение
но всё равно вылазит:
Цитата Сообщение от Drygba Посмотреть сообщение
1. Какой вы массив пытаетесь инициализировать? Как инициализировать массив элементов int?
Еще раз прочитайте и найдите ответ
0
0 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 83
14.02.2013, 18:11  [ТС]
Цитата Сообщение от Drygba Посмотреть сообщение
Еще раз прочитайте и найдите ответ
вот ведь инициализация массива arr типа int из 6 чисел:
Java
1
int arr[] = {'3', '2', '5', '1', '4', '6'};
разве неправильно?..
0
 Аватар для exiqa
487 / 333 / 71
Регистрация: 24.12.2011
Сообщений: 591
14.02.2013, 18:18
Java
1
2
char c = '3'; // инициализация символьным литералом
int i = 3; // инициализация целочисленным литералом
0
0 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 83
14.02.2013, 18:22  [ТС]
и вообще метод пузырька как описано тут совсем другой..
в моём коде я так понимаю
0 индекс сравнивается с 1ым
наименьшее помещается на место 0 индекса
0 сравнивается с 2ым
наименьшее помещается на место 0 индекса
0 сравнивается с 3им
наименьшее помещается на место 0 индекса
0 сравнивается с 4ым
наименьшее помещается на место 0 индекса
0 сравнивается с 5ым
наименьшее помещается на место 0 индекса

1 сравнивается с 2ым
наименьшее помещается на место 1ого
1 сравнивается с 3им
наименьшее помещается на место 1ого
1 сравнивается с 4ым
наименьшее помещается на место 1ого
1 сравнивается с 5ым
наименьшее помещается на место 1ого

и так далее... как этот метод называется? я именно его хочу сделать..

Добавлено через 2 минуты
Цитата Сообщение от exiqa Посмотреть сообщение
Java
1
2
char c = '3'; // инициализация символьным литералом
int i = 3; // инициализация целочисленным литералом
всё ясноо.) спасибо.. не уследил..

Drygba, тоже спасибо за помощь. Лучше подумать иногда, чем давать сразу ответ.)
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
14.02.2013, 19:23
Цитата Сообщение от Exxtazy Посмотреть сообщение
прошу допишите именно мой код!
Вам что сложно было глянуть в мой код и сравнить со своим?
0
0 / 0 / 0
Регистрация: 28.01.2015
Сообщений: 9
17.02.2013, 15:14
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Bubble {
 
    public static void main(String[] args) {
        int arr[] = { 3, 2, 5, 1, 4, 6 };
        int a, b, t;
 
        // Отобразить исходный массив
        System.out.println("ORIGINAL ARRAY IS:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(" " + arr[i]);
        }
        System.out.println("\n");
        
        // Алгоритм сортировки
        for (a = 1; a < arr.length; a++) {
            for (b = arr.length - 1; b >= a; b--) {
                if (arr[b - 1] > arr[b]) {
                    t = arr[b - 1]; 
                    arr[b - 1] = arr[b];
                    arr[b] = t;
                }
            }   
        }
 
        //Отсортированный массив
        System.out.println("SORTED ARRAY IS:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(" " + arr[i]);
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.02.2013, 15:14
Помогаю со студенческими работами здесь

Сортировка элементов пузырьком по убыванию
Всем привет. Задание было сделать сортировку элементов пузырьком по убыванию. На выводе: . Как исправить ошибку? public class...

Сортировка вставками или пузырьком?
Здравствуйте! подскажите, пожалуйста, правильно ли реализован алгоритм сортировки вставками, или это больше походит на пузырек? просто я...

Сортировка пузырьком двухмерного массива
После заполнения случайными числами двухмерного массива нужно отсортировать его. Массив заполнила, но не могу разобраться с входными...

Сортировка Пузырьком (строки двумерного массива)
Дана вещественная матрица размером n строк, m столбцов. Для каждой строки найти наибольший элемент и упорядочить строки матрицы по...

Сортировка пузырьком для односвязного списка
Помогите, пожалуйста, с реализацией сортировки пузырьком для односвязного списка. Желательно создать список и метод сортировки для него....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru