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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.70
xexew
0 / 0 / 0
Регистрация: 22.02.2011
Сообщений: 76
#1

сортировка пузырьком - C++

11.09.2011, 22:59. Просмотров 2530. Ответов 23
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
void main()
{
const n=4;
int a[n],i,j,buffer;
for(i=0;i<n;i++)
cin>>a[i];
 
for (i=0; i<n-1; i++) 
    for (j=i; j>=0; j--) 
        if (a[j] > a[j+1]) 
        {
         buffer=a[i];
         a[i]=a[j];
         a[j]=buffer;
        }
for(i=0;i<n;i++)
cout<<"a["<<i<<"]="<<a[i]<<endl;
 
 
 
}
входные данные: 5 3 10 2
исходные: 3 5 10 2
будьте добры, подскажите как сделать что бы он еще один круг сортировал
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2011, 22:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос сортировка пузырьком (C++):

Сортировка пузырьком - C++
вот написала программу но не работает :( #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; using...

Сортировка пузырьком - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #define M 10 void main() { int i,j,n,k; int m; ...

Сортировка пузырьком - C++
Не понимаю, в чем проблема при сортировке пузырьком. сортирую структуру: for (int i=0; i&lt;4; i++) { for (int j=n-1; j&gt;i; j--)...

сортировка пузырьком - C++
Вечер добрый! Задача проста: отсортировать сначала по зп, если &lt; 400, то в 1ый список, а если больше, то во второй, отсортировав по...

Сортировка Пузырьком :) - C++
Привет, ребята :) Вообщем, наткнулся на написание программы с использованием сортировки пузырьком. Никогда не использовал :) Часть кода...

Сортировка пузырьком - C++
Нужно отсортировать два динамических массива методом пузырька. Не могу понять в чем ошибка, помогите пожалуйста. #include &quot;stdafx.h&quot; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
11.09.2011, 23:44 #16
хм...

Добавлено через 1 минуту
у меня опять же все правильно! (Даже смешно уже как-то )
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
11.09.2011, 23:45 #17
Вот доказательство
Миниатюры
сортировка пузырьком  
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.09.2011, 23:53 #18
C++
1
2
3
4
for (i=0; i<=n; i++) 
    for (j=0; j<n-i; j++) 
        if (a[j] > a[j+1]) 
            swap (a[j],a[j+1]);
Выход за границы массива. При i = 0, j в последней итерации будет равно n - 0, и в блоке if выход при j +1.
И совсем необязательно брать i до n включительно. Все равно второй цикл при i = n не запустится.

Добавлено через 1 минуту
Поправка - j будет равен n - 0 - 1(т.к. n не включительно. Но сути не меняет)
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
11.09.2011, 23:53 #19
у меня на двух копиляторах, два разных результата показывает
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.09.2011, 23:58 #20
у меня на двух копиляторах, два разных результата показывает
Это очевидно. Никто не знает точно, какие данные будут за границей массива.
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
12.09.2011, 00:02 #21
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
const int n=4;
int a[n+1],i,j;
for(i=0;i<n;i++)
cin>>a[i];
 
for (i=0; i<n-1; i++) 
    for (j=0; j<n-i-1; j++) 
        if (a[j] > a[j+1]) swap (a[j],a[j+1]);
for(i=0;i<n;i++)
cout<<"a["<<i<<"]="<<a[i]<<endl;
system ("pause"); 
 return 0;
 
}
Добавлено через 28 секунд
Цитата Сообщение от soon Посмотреть сообщение
Это очевидно. Никто не знает точно, какие данные будут за границей массива.
В том смысле, в одном правильный результат, в другом нет
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
12.09.2011, 00:12 #22
Ну, если я все правильно просчитал на бумажке, кажется все правильно. Только вот одно смущает - размер массива (n + 1) - зачем?
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
12.09.2011, 00:17 #23
это с тестового режима осталось
Aplisen
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 27
25.10.2012, 23:25 #24
Цитата Сообщение от soon Посмотреть сообщение
Вот тут случаем не будет выхода за границы массива?
Да,выход за границы массива безусловно будет.Как решить,пока не знаю
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2012, 23:25
Привет! Вот еще темы с ответами:

Сортировка пузырьком. - C++
Приветствую, тех кто заглянул в топик. Помогите, пожалуйста, решить задачу на C пузырьковой сортировкой. Отсортировать символьный...

Сортировка пузырьком - C++
Всем доброго времени суток! Я новичек в С++.У меня глупая ситуация: недавно написал код сортировки на C++, и сегодня решил...

Сортировка пузырьком с++ - C++
Сортировка пузырьком, все работает, но помогите поменять ввод цифр в ручную на ввод цифр рандома (от -100 до +100). #include &lt;iostream&gt; ...

Сортировка пузырьком - C++
Привет всем. Проверьте программу, пожалуйста. #include &lt;stdio.h&gt; #include &lt;conio.h&gt; int n, i, j, t; void sort( int a, int n,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.10.2012, 23:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru