![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| .talisman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 19.2.2005 Репутация: нет Всего: нет |
Написал на Си сортировку пузырьком. Знаю, что очень медленно работает -- скорость прямопропорционально зависит от количества элементов массива. Писал из-за того, что недавно проходили её в шараге, она самая простая для понимания и её нам нужно постоянно использовать.
Собственно далее привожу код программы, может кому-то и пригодится.
Это сообщение отредактировал(а) .talisman - 21.2.2005, 17:20 |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
вот эту строку я бы заменил int *a = new int[size]; я думаю так более правельно |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
Вообще-то классическая сортировка пузырем ака камнем - это
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
когда j будет равен size-1, j+1 будет равен size а значит, будет попытка обратиться к a[size], что не есть хорошо... -------------------- qqq |
|||
|
||||
| .talisman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 19.2.2005 Репутация: нет Всего: нет |
chaos как я понимаю это уже динамический массив.
можно и так, для большей гибкости. тогда нужно будет изменить "const size" на "int size" |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
верно |
|||
|
||||
| .talisman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 19.2.2005 Репутация: нет Всего: нет |
Akina
maxim1000 согласен, исправим-с =) |
|||
|
||||
| Doc_d0s |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 15.12.2004 Где: в кресле Репутация: 2 Всего: 3 |
Вот мой вариант:
--------------------
Админ- это вождь Apache'й :) |
|||
|
||||
| kostyantmb |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 1.12.2004 Репутация: нет Всего: нет |
Попробуй это:
Используется дополнительная булевская переменная F. При каждом заходе в первый цикл ей присваивается значение false и если в процессе выполнения один из элементов будет не отсортирован, то значение этой переменной меняется на true и первый цикл продолжается дальше. Если значение не поменялось, то это значит, что уже нечего сортировать. Данная сортировка выполняет n*(n-1)*(n-2)*...*(2)*(1) операций в худшем случае. |
|||
|
||||
| Goryachev |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 23.2.2005 Где: Израиль Репутация: нет Всего: нет |
Ты имел ввиду n+(n-1)+(n-2)+...+(2)+(1) |
|||
|
||||
| kostyantmb |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 1.12.2004 Репутация: нет Всего: нет |
Да, именно так!
|
|||
|
||||
| Enya |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 5.10.2005 Репутация: нет Всего: нет |
-------------------- Утсанвлен Денвер 1. PHP Version 5.1.6 2. MySQL 5.0.18-max 3. phpMyAdmin 2.6.1 |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
после перестановки элементов ( а именно if(items[b-1]>items[b]){ ) выводи циклом весь массив
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Enya |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 5.10.2005 Репутация: нет Всего: нет |
Предлагаю ещё вариант сортировки методом "пузырька".
Сортрует не числа, а строчку. Мне кажется так не много проще.
-------------------- Утсанвлен Денвер 1. PHP Version 5.1.6 2. MySQL 5.0.18-max 3. phpMyAdmin 2.6.1 |
|||
|
||||
| Enya |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 5.10.2005 Репутация: нет Всего: нет |
Если после меня никто не постил, значит скорее всего код правильный, мот предлагаю модифицированную сортировку методом "пузырька"
-------------------- Утсанвлен Денвер 1. PHP Version 5.1.6 2. MySQL 5.0.18-max 3. phpMyAdmin 2.6.1 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |