0 / 0 / 0
Регистрация: 06.02.2014
Сообщений: 27
1

Сортировка вставками или пузырьковая сортировка?

07.08.2015, 17:34. Показов 2257. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Подскажите пожалуйста, правильно ли что это код сортировки вставками или же это пузырьковая сортировка?
Java
1
2
3
for(int i=1;i<n;i++)     
    for(int j=i;j>0 && x[j-1]>x[j];j--) // пока j>0 и элемент j-1 > j, x-массив int
            swap(x[j-1],x[j]);        // меняем местами элементы j и j-1
(Код больше похож на пузырьковую сортировку, чем на сортировку вставками, так как здесь происходит обмен соседних элементов как в пузырьковой сортировке, а не вставка элемента в нужное место как в сортировке вставками).
Данный код был приведен здесь: http://habrahabr.ru/post/181271/.
Здесь такой же псевдокод: http://neerc.ifmo.ru/wiki/inde... 0%BC%D0%B8.
Во всех остальных местах приведен такой код сортировки вставками:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
public static void insertionSort(int[] arr) {
    for(int i = 1; i < arr.length; i++){
        int currElem = arr[i];
        int prevKey = i - 1;
            while(prevKey >= 0 && arr[prevKey] > currElem){
                arr[prevKey+1] = arr[prevKey];
                arr[prevKey] = currElem;
                prevKey--;
            }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.08.2015, 17:34
Ответы с готовыми решениями:

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

Пузырьковая сортировка
Ребят, нужна помощь, Начал изучать жаву, решил разобраться с пузырьковой сортировкой, вот код:...

Пузырьковая сортировка
Посчитать количество перестановок и количество проходов(не тех, где длина массива -1, а вот когда...

Пузырьковая сортировка
Объясните пожалуйста как работает Пузырьковая сортировка. Я только начал изучать Java. Вот код ...

3
95 / 95 / 50
Регистрация: 07.07.2015
Сообщений: 208
07.08.2015, 18:16 2
пузырьки.начните с определений. сразу станет понятно.
0
0 / 0 / 0
Регистрация: 06.02.2014
Сообщений: 27
07.08.2015, 19:08  [ТС] 3
Именно после прочтения определений сортировки пузырьком и вставками и возник этот вопрос. Почему только на этих двух сайтах (приведенных мною выше) код алгоритма вставками написан так:
Java
1
2
3
for(int i=1;i<n;i++)     
    for(int j=i;j>0 && x[j-1]>x[j];j--) // пока j>0 и элемент j-1 > j, x-массив int
            swap(x[j-1],x[j]);        // меняем местами элементы j и j-1
После запуска данного кода стало видно, что он работает как пузырьковая сортировка.
А вот этот код (приведенный на большинстве сайтов):
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
public static void insertionSort(int[] arr) {
    for(int i = 1; i < arr.length; i++){
        int currElem = arr[i];
        int prevKey = i - 1;
            while(prevKey >= 0 && arr[prevKey] > currElem){
                arr[prevKey+1] = arr[prevKey];
                arr[prevKey] = currElem;
                prevKey--;
            }
    }
}

работает как сортировка вставками.
Никак не могу понять то ли на этих двух сайтах приведенных мною неправильный код сортировки вставками, то ли я чего-то не понимаю.
0
95 / 95 / 50
Регистрация: 07.07.2015
Сообщений: 208
07.08.2015, 22:57 4
Guessst, если делается так, то это определенно пузырек
Цитата Сообщение от Guessst Посмотреть сообщение
swap(x[j-1],x[j]);
чтобы была вставка, надо значение для вставки куда-то сохранять и потом его вставлять в нужное место, что требует более интересной логики, чем просто swap. Фактически в первоначальном примере была попытка реализации вставки с помощью пузырька
1
07.08.2015, 22:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.08.2015, 22:57
Помогаю со студенческими работами здесь

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

Пузырьковая сортировка двумерного массива
Задан 2-й массив. Требуется отсортировать каждую строку по убыванию.Сортировка пузырьковая должна...

Пузырьковая сортировка двумерного массива
Как-то подзабыл сортировку двумерного массива. Попросили нарисовать в примитивном виде. Посмотрел...

Пузырьковая сортировка ArrayList содержащего обекты класа
Подскажите как отсортировать ArrayList содержащего обекты класа, используя пузырьковую сортировку?...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru