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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2011, 19:59   #1
frixer
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 16
По умолчанию Сортировка Массива С++

Добрый вечер всем
возникла проблема в сортировке массива, методом пузырька.
Сама задача
------------
Нужно добавить функцию сорти-ровки (упорядочивания) массива. Пусть в эту функцию передается массив вещественных чисел, и, как всегда, размер массива. Функция должна сортировать переданный массив по возрастанию (в начале массива должны оказаться самые маленькие числа в конце самые большие). Реализуем один из самых простых алгоритмов, который известен, как метод пузырька.
------------
Я так понимаю метод пузырька но реализовать не получается

Флаг = ложь
Для i от 0 до n-1 делать
Если mi > mi+1 начало
поменять mi и mi+1
Флаг = истина
конец
Пока флаг равен истине

Переменная «Флаг» соответствует логическому утверждению «перестановки элементов были». Необходимо помнить, что в данном случае модифицируется (сортируется) ориги-нальный массив, то есть тот массив, который как раз и был передан в качестве параметра.
------------
сама программа
------------
Код:
#include <stdio.h>
void ArrPrint(int *m, int n)
{
	int i;
	int iSum;
	double iSredn;
	iSum = 0;
	for (i = 0; i < n; i++)
		iSum = m[i]+iSum;
		iSredn = iSum/n;
		printf("Srednee arifmeticheskoe = %lf", iSredn);
}
int main()
{
	int a[5]={4,5,2,1,5};
	ArrPrint(a,5);
	getchar();
	return 0;
}
-----------
Нужно добавить функцию сортировки массива по возрастанию
-----------
Заранее спасибо...
frixer вне форума Ответить с цитированием
Старый 11.03.2011, 10:33   #2
kozaby
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 14
По умолчанию

Код:
void sortBuble(int *a, int n)
{
	int x;
	for(i = 0; i < n; i++)
		for(j = i+1; j < n; j++)
			if(a[i] > a[j])
			{
				x = a[i];
				a[i] = a[j];
				a[j] = x;
			}
}
kozaby вне форума Ответить с цитированием
Старый 13.03.2011, 15:41   #3
frixer
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 16
По умолчанию

Цитата:
Сообщение от kozaby Посмотреть сообщение
Код:
void sortBuble(int *a, int n)
{
	int x;
	for(i = 0; i < n; i++)
		for(j = i+1; j < n; j++)
			if(a[i] > a[j])
			{
				x = a[i];
				a[i] = a[j];
				a[j] = x;
			}
}
а как вывести значения в упорядоченном виде?
frixer вне форума Ответить с цитированием
Старый 13.03.2011, 15:50   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Код:
void sortBublePrint(int *a, int n)
{
	int x;
	for(i = 0; i < n; i++)
		for(j = i+1; j < n; j++)
			if(a[i] > a[j])
			{
				x = a[i];
				a[i] = a[j];
				a[j] = x;
			}
    for(i = 0; i < n; i++)
        cout << a[i] << "\t";
}
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 13.03.2011, 15:50   #5
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

Цитата:
Сообщение от frixer Посмотреть сообщение
а как вывести значения в упорядоченном виде?
студент ленивый нынче пошел
Код:
for(i=0;i<n;i++)cout<<a[i]<<" ";
Летучий_СкилетиК вне форума Ответить с цитированием
Старый 13.03.2011, 16:00   #6
frixer
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
Код:
void sortBublePrint(int *a, int n)
{
	int x;
	for(i = 0; i < n; i++)
		for(j = i+1; j < n; j++)
			if(a[i] > a[j])
			{
				x = a[i];
				a[i] = a[j];
				a[j] = x;
			}
    for(i = 0; i < n; i++)
        cout << a[i] << "\t";
}
а как написать функцию разупорядочивания массива если он упорядочен?
frixer вне форума Ответить с цитированием
Старый 13.03.2011, 18:00   #7
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

Цитата:
Сообщение от frixer Посмотреть сообщение
а как написать функцию разупорядочивания массива если он упорядочен?
что ж это за слово та такое
Цитата:
разупорядочивание
поменяй местами первый с последним элементам
Код:
a[0]  поменять местами с a[n]
, вооля вот тебе из разупорядочивание
Летучий_СкилетиК вне форума Ответить с цитированием
Старый 13.03.2011, 18:18   #8
>>STINGER<<
Пользователь
 
Аватар для >>STINGER<<
 
Регистрация: 01.05.2010
Сообщений: 17
По умолчанию

неужели у вас на лекциях не было темы сортировки?
>>STINGER<< вне форума Ответить с цитированием
Старый 13.03.2011, 18:18   #9
>>STINGER<<
Пользователь
 
Аватар для >>STINGER<<
 
Регистрация: 01.05.2010
Сообщений: 17
По умолчанию

обращался к frixer
>>STINGER<< вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
Сортировка массива aank10 Общие вопросы C/C++ 2 12.02.2011 22:05
Сортировка массива. n0rma1 Помощь студентам 9 25.04.2010 17:24
Сортировка массива ttjke Помощь студентам 0 01.12.2009 20:03
Сортировка массива Helennna Microsoft Office Excel 7 06.08.2009 18:41