Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2011, 23:35   #1
Alexander1205
Пользователь
 
Аватар для Alexander1205
 
Регистрация: 22.01.2011
Сообщений: 78
По умолчанию bubble_sort

Доброго времени суток! Что-то не идет пузырьковая сортировка,случайные числа генерируются,а вот самой сортировки не происходит..Может,кто-то подскажет что неправильно в коде?
#include<iostream>
#include<ctime>
using namespace std;
void main()
{
srand(time(NULL));
int mas[50],n=50,i,k;
for(i=0;i<n-1;i++)
{
mas[i]=rand()%100;
cout<<mas[i]<<" ";
}
cout<<"\n\n";
for(k=i;k>n-1;k++)
{
if(mas[k]<mas[k-1])
{
int c;
c=mas[k];
mas[k]=mas[k-1];
}
for(i=0;i<n-1;i++)
{
cout<<mas[i]<<" ";
}
cout<<"\n\n";
}

}
Alexander1205 вне форума Ответить с цитированием
Старый 09.02.2011, 01:14   #2
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

тут 5 косяков:
1) void main(). А должно быть int main().
2) Ужасные отступы. Из-за этого ты напутал там кучу всего.
3) Нахрена создавать счётчики до for?
4) Ну это ты сам увидишь.
Код:
int c;
c=mas[k];
mas[k]=mas[k-1];
да и вообще есть же std::sort
5) сортировка пузырьком делается не так

Вот так работает:
Код:
#include <iostream>
#include <ctime>
#include <algorithm>

using namespace std;
int main()
{
    srand(time(NULL));
    const int n = 50;
    int mas[n];
    for(int i = 0; i < n - 1; i++) {
        mas[i] = rand() % 100;
        cout << mas[i] << " ";
    }
    cout << endl;
    
    for(int i = n - 1; i > 0; i--) {
        for(int j = 0; j < i; j++) {
            if(mas[j] > mas[j + 1]) {
                swap(mas[j], mas[j + 1]);
            }
        }
    }
    
    for(int i = 0; i < n - 1; i++) {
        cout << mas[i] << " ";
    }
    cout << endl;
}
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 09.02.2011 в 01:22.
Obey-Kun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц