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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2015, 15:40   #1
DanDeL1oN
Новичок
Джуниор
 
Регистрация: 14.05.2015
Сообщений: 2
По умолчанию Задан массив из попарно различных чисел

Помогите составить программу. Задан массив из попарно различных чисел. Составить алгоритм перестановки элементов
массива по правилу: чем меньше значение, тем дальше должен находиться элемент от середины
массива. Например, массив 1 2 4 5 6 7 8 после сортировки должен выглядеть так: 1 4 6 8 7 5 2
DanDeL1oN вне форума Ответить с цитированием
Старый 14.05.2015, 15:43   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А чего в конец перескочила двойка а не единица?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.05.2015, 15:57   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Потоме что она уже на самом большом расстоянии
p51x на форуме Ответить с цитированием
Старый 14.05.2015, 21:22   #4
Gekan
Пользователь
 
Регистрация: 29.06.2012
Сообщений: 39
По умолчанию

Код:
#include <iostream>
using namespace std;

void show(int* a, int size)
{
	for (int i=0; i<size; i++)
		cout<<a[i]<<"  ";
}

/*
void sort(int* a, int size)
{
	//любой алгоритм сортировки
}
*/

void main()
{
	int a[] = {1,2,4,5,6,7,8,9,10};
	int size = sizeof(a)/sizeof(int);
	//если массив изначально не отсортирован, то тут что-то типа
	//sort(a,size);
	show(a,size);
	cout<<endl;
	for (int i=1; i<size-1;i++)
	{
		for (int j=i; j<size-1; j+=2)
			swap(a[j],a[j+1]);
		show(a,size);
		cout<<endl;
	}
}
Gekan вне форума Ответить с цитированием
Старый 14.05.2015, 23:12   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Вроде работает:
Код:
int p(int i, int s)
{
    return s / 2 + s % 2 + i % 2 - 1 + (2 * (i % 2) - 1) * (i / 2);
}
...
int a[] = {10, 1 , 4, 5, 2, 7, 8, 9, 6, 0};
int size = sizeof(a) / sizeof(int);
for (int i = 0; i < size - 1; ++i)
    for (int j = i + 1; j < size; ++j) {
        if (a[p(i, size)] < a[p(j, size)])
            swap(a[p(i, size)], a[p(j, size)]);
...
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 17.05.2015, 12:28   #6
DanDeL1oN
Новичок
Джуниор
 
Регистрация: 14.05.2015
Сообщений: 2
По умолчанию

А как сделать так, чтобы размер массива нужно было записывать с клавиатуры и он состоял бы из рандомных чисел
DanDeL1oN вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задан массив целых чисел, который может содержать повторяющиеся члены. Вычислить сколько чисел входят в массив более чем по одному nubiknovo Паскаль, Turbo Pascal, PascalABC.NET 6 20.11.2013 00:50
Даны пять попарно различных целых чисел a,b,c,d,e . Упорядочить их по возрастанию , используя для этого не более семи сравнений Megapol Паскаль, Turbo Pascal, PascalABC.NET 11 30.04.2013 16:41
assembler. Задан массив А из N чисел. Преобразовать этот массив так, чтобы сначала шли четные числа, а потом – нечетные Transcend Помощь студентам 5 18.03.2013 11:42
Дан массив A[7,7]. Найти количество столбцов, составленных из попарно различных элементов (Pascal) yul111-95 Паскаль, Turbo Pascal, PascalABC.NET 0 02.02.2013 22:01
Задан массив чисел dolya2007 Общие вопросы C/C++ 0 01.05.2009 02:45