Форум программистов, компьютерный форум CyberForum.ru

Такая сортировка методом пузырька правильная? - C++

Восстановить пароль Регистрация
 
PriZrаK
-116 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 144
01.02.2014, 11:54     Такая сортировка методом пузырька правильная? #1
C++
1
2
3
4
5
6
7
8
9
    int a[10] = {100, 90, 300, 1, -200, -600, 800, 100, 400, 70};
    int i,j,k;
    for (i=0;i<10;i++)
     for (j=0;j<10;j++)
      if (a[j] > a[j+1]){
        k = a[j+1];
        a[j+1]=a[j];
        a[j] = k;
      }
Добавлено через 7 минут
или так лучше?
C++
1
2
3
4
5
6
7
8
9
    int a[10] = {100, 90, 300, 1, -200, -600, 800, 100, 400, 70};
    int i,j,k;
    for (i=0;i<10;i++)
     for (j=9;j>=i;j--)
      if (a[j] > a[j+1]){
        k = a[j+1];
        a[j+1]=a[j];
        a[j] = k;
      }
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2014, 11:54     Такая сортировка методом пузырька правильная?
Посмотрите здесь:

C++ Сортировка методом Пузырька
Сортировка методом пузырька C++
C++ Сортировка методом пузырька
Сортировка методом пузырька C++
C++ Сортировка методом пузырька
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
01.02.2014, 11:56     Такая сортировка методом пузырька правильная? #2
В первом случае очевидно будет выход за границы массива.
Да и есть же тема: Алгоритмы сортировок
Kill100
 Аватар для Kill100
359 / 248 / 33
Регистрация: 11.12.2010
Сообщений: 1,068
Завершенные тесты: 1
01.02.2014, 12:04     Такая сортировка методом пузырька правильная? #3
Цитата Сообщение от PriZrаK Посмотреть сообщение
или так лучше?
Во втором то же что то пичальное
надо
C++
1
2
for (i=0;i<10;i++)
     for (j=0;j<9;j++)
PriZrаK
-116 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 144
01.02.2014, 12:05  [ТС]     Такая сортировка методом пузырька правильная? #4
Цитата Сообщение от 0x10 Посмотреть сообщение
В первом случае очевидно будет выход за границы массива.
Да и есть же тема: Алгоритмы сортировок
А зачем нужен внешний цикл?
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
01.02.2014, 12:07     Такая сортировка методом пузырька правильная? #5
Цитата Сообщение от PriZrаK Посмотреть сообщение
А зачем нужен внешний цикл?
Во внутреннем цикле только меняются местами соседние элементы. Очевидно, в общем случае за один проход массив не может быть упорядочен, поэтому проходов нужно N-1.
Описание алгоритма есть на википедии.
Байт
 Аватар для Байт
13988 / 8819 / 1230
Регистрация: 24.12.2010
Сообщений: 15,975
01.02.2014, 12:31     Такая сортировка методом пузырька правильная? #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
PriZrаK, Первый вариант, как заметил 0x10, просто нерабочий. Но даже его исправить (for(j=0; j<9; j++)), он будет делать много лишнего, т.е. анализировать уже отсортированные отрезки массива.
Второй вариант, кажется на взгляд, приемлемым. Но проверку его работоспособности надо сделать на компьютере.

Добавлено через 1 минуту
Цитата Сообщение от Kill100 Посмотреть сообщение
Во втором то же что то пичальное
надо
C++
1
2
for (i=0;i<10;i++)
     for (j=0;j<9;j++)
Лишние сравнения.

Добавлено через 19 минут
Цитата Сообщение от Байт Посмотреть сообщение
Но даже его исправить
"если" пропустил. Но, надеюсь, меня поняли
PriZrаK
-116 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 144
01.02.2014, 13:28  [ТС]     Такая сортировка методом пузырька правильная? #7
Цитата Сообщение от 0x10 Посмотреть сообщение
Во внутреннем цикле только меняются местами соседние элементы. Очевидно, в общем случае за один проход массив не может быть упорядочен, поэтому проходов нужно N-1.
Описание алгоритма есть на википедии.
просто интересно, а у всех начинающих(вроде меня) проблемы с сортировкой массивов? Или это сама по себе сложная задача?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2014, 14:02     Такая сортировка методом пузырька правильная?
Еще ссылки по теме:

C++ Сортировка методом пузырька
Сортировка методом пузырька C++
C++ Сортировка методом пузырька

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

Или воспользуйтесь поиском по форуму:
Байт
 Аватар для Байт
13988 / 8819 / 1230
Регистрация: 24.12.2010
Сообщений: 15,975
01.02.2014, 14:02     Такая сортировка методом пузырька правильная? #8
Цитата Сообщение от PriZrаK Посмотреть сообщение
Или это сама по себе сложная задача?
Методом пузырька - сами видели - все просто - несколько строк вполне несложного кода. Другие методы, Шелла, Хоара и прочие - немного посложнее, но тоже как говаривал Корвьев - "Подумаешь, Бином Ньютона!"
Конечно, пока новичок плохо себе представляет, что такое массивы, да, он будет испытывать затруднения.
Кстати, Шелла - тот же пузырек, только с "лифтом". Он додумался сравнивать не соседние элементы, а через N/2, благодаря чему "пузырьки" поднимаются значительно быстрее
Yandex
Объявления
01.02.2014, 14:02     Такая сортировка методом пузырька правильная?
Ответ Создать тему
Опции темы

Текущее время: 12:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru