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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2009, 18:54   #1
fygas1991
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 36
По умолчанию Сортировка методом пузырька

Народ, помогите пожалуйста. Покажите какой нето простой пример программы Сортировки массива методом пузырка. Действие самого метода я понял, тока никак не разберусь на примере самой программы, как она работает? И как реализовать?
программа примерно такая:
-мы вводим элементы массива(например 10 элиментов)
-программа их сортирует(соответственно по возрастанию)
-вывод отсортиованного массива на экран
fygas1991 вне форума Ответить с цитированием
Старый 12.11.2009, 19:32   #2
Пaвeл
Пользователь
 
Аватар для Пaвeл
 
Регистрация: 08.11.2008
Сообщений: 47
По умолчанию

Код:
# include <cstdio>
# include <cstdlib>
# include <cmath>


void print_mas(int n,int mas[])  // процедура, которая выводит массив
{
	for (int i=1; i<=n; i++)
		printf("%d ",mas[i]);

}
inline void Swap(int &a, int &b)
{
    int buf = a;
    a = b;
    b = buf;
}
void sort(int n,int mas[])  // сама сортировка
{
	for (int i = 1; i < n; i++)
		for (int j = 1; j < n; j++)
			if (mas[j]>mas[j+1])
			    Swap(mas[j],mas[j+1]);   
}


int main()
{
	int n;        
           int mas[1000];
	
	scanf("%d",&n);

	for (int i=1 ;i <= n; i++)
		scanf("%d",&mas[i]);
	
           sort(n, mas);

	print_mas(n,mas);

	return(0);
}
Я не знаю, как должно быть, но вы делаете всё не правильно ©

Последний раз редактировалось Sazary; 13.11.2009 в 01:33.
Пaвeл вне форума Ответить с цитированием
Старый 12.11.2009, 19:52   #3
fygas1991
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 36
По умолчанию

Цитата:
...
void sort(int n,int mas[]) // сама сортировка
{
for (int i = 1; i < n; i++)
for (int j = 1; j < n; j++)
if (mas[j]>mas[j+1])
Swap(mas[j],mas[j+1]);
}
...
А вот в самой сортировки, данные циклы, они что именно делают???
fygas1991 вне форума Ответить с цитированием
Старый 12.11.2009, 22:46   #4
Пaвeл
Пользователь
 
Аватар для Пaвeл
 
Регистрация: 08.11.2008
Сообщений: 47
По умолчанию

В этих циклах и меняются местами элементы массива.
Шаг сортировки состоит в проходе от начала к концу по массиву. По пути просматриваются пары соседних элементов. Если элементы некоторой пары находятся в неправильном порядке, то меняем их местами.
Первый цикл (который идет по i) - это номер шага, на котором мы сейчас. Во вложенном цикле (который по j) мы рассматриваем соседние пары чисел. Если они идут в неправильном порядке, то мы их меняем.
Я не знаю, как должно быть, но вы делаете всё не правильно ©
Пaвeл вне форума Ответить с цитированием
Старый 15.11.2009, 21:29   #5
fygas1991
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 36
По умолчанию

Кстати при компиляции программы, он ругается на строки
Цитата:
...
void sort(int n,int mas[])
...
void print_mas(int n,int mas[])
...
fygas1991 вне форума Ответить с цитированием
Старый 15.11.2009, 21:39   #6
pinch000
Пользователь
 
Регистрация: 29.10.2009
Сообщений: 42
По умолчанию мм

Цитата:
...
void sort(int n,int mas[])
...
void print_mas(int n,int mas[])
...
попробуй вот это вот

Цитата:
...
void sort(int n,Type mas[])
...
void print_mas(int n,Type mas[])
...
pinch000 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка методом линейного выбора и "быстрая" сортировка Карол Помощь студентам 4 27.09.2009 19:52
Сортировка простым выбором (метод пузырька)) Sparky Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 22.09.2009 18:06
Помогите - Сортировка методом пузырька Delphi #Nii Помощь студентам 5 21.12.2008 14:53
сортировка методом двухпроходного пузырька. Net* Общие вопросы C/C++ 3 26.05.2008 07:17