1 / 1 / 0
Регистрация: 11.02.2015
Сообщений: 115
1

Составить алгоритм перестановки элементов массива по правилу

11.05.2015, 13:38. Показов 941. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задан массив из попарно различных чисел. Составить алгоритм перестановки элементов массива по правилу: чем меньше значение, тем дальше должен находиться элемент от середины массива. Например, массив 1 2 4 5 6 7 8 после сортировки должен выглядеть так: 1 4 6 8 7 5 2.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
uses crt;
var a:array[1..100] of integer;
    n,i,j,k,imn,p,x:integer;
begin
clrscr;
randomize;
begin
repeat
write('Razmer massiva n=');
readln(n); until n>1 end;
writeln('Ishodnyj:');
for i:=1 to n do
 begin
  a[i]:=random(20);
  write(a[i],' ');
 end;
writeln;
writeln;
k:=n div 2;
for i:=1 to k do
 begin
  imn:=i;
  for j:=i+1 to n-i+1 do
  if a[j]<a[imn] then imn:=j;
  x:=a[imn];
  for p:=imn downto i+1 do
  a[p]:=a[p-1];
  a[i]:=x;
  imn:=i+1;
  for j:=i+1 to n-i+1 do
  if a[j]<a[imn] then imn:=j;
  x:=a[imn];
  for p:=imn to n-i do
  a[p]:=a[p+1];
  a[n-i+1]:=x;
 end;
writeln('Gorka:');
for i:=1 to n do
write(a[i],' ');
readln
end.
вот она у меня есть на паскале, надо перевести на с++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2015, 13:38
Ответы с готовыми решениями:

Составить алгоритм перестановки элементов массива по правилу
Помогите сделать пожалуйста. Задан массив из попарно различных чисел. Составить алгоритм...

Алгоритм перестановки элементов массива
Кто-нибудь знает как сделать перестановку элементов таким образом 1 2 3 4 5 6 7 8 9 10 11 12 13 14...

Составить алгоритм формирования массива по заданному правилу
Исходными данными являются: натуральное число N, массив чисел А. Составить алгоритм формирования...

Алгоритм произвольной перестановки элементов массива без использования 2-го массива
В некоторых случаях при очень больших массивах важны кроме скорости и требования к памяти...

8
Модератор
Эксперт JS
5197 / 2079 / 406
Регистрация: 06.01.2013
Сообщений: 4,793
11.05.2015, 14:17 2
По ТЗ:
Насчёт кода в Паскале - не переводил.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <algorithm>
 
size_t get_position(size_t i, size_t sz) {
    return i % 2 ?
        ( sz - (i / 2) - 1) :
        ( i / 2 );
}
 
template<typename T, size_t sz>
void radian_sort(T (&array)[sz]){
    T shuffled[sz];
    
    std::sort(std::begin(array), std::end(array));
    for (size_t i = 0; i < sz; ++i)
        shuffled[get_position(i, sz)] = array[i];
    std::copy(std::begin(shuffled), std::end(shuffled), std::begin(array));
}
 
int main ( ) {
    int array[] = { 1, 5, 4, 3, 7, 15, 29, 30, 35 };
    radian_sort(array);
    
    std::for_each(std::begin(array), std::end(array), [ ] (int a) { std::cout << a << ' '; });
}
0
1 / 1 / 0
Регистрация: 11.02.2015
Сообщений: 115
14.05.2015, 08:10  [ТС] 3
FraidZZ, не работает, ошибку выдает
0
Модератор
Эксперт JS
5197 / 2079 / 406
Регистрация: 06.01.2013
Сообщений: 4,793
14.05.2015, 09:13 4
DanDeL1oN, приведите текст.
Скорее всего, Ваш компилятор не поддерживает C++11 или эта поддержка в нём не включена.
0
1 / 1 / 0
Регистрация: 11.02.2015
Сообщений: 115
14.05.2015, 09:18  [ТС] 5
FraidZZ, 1>------ Сборка начата: проект: ConsoleApplication13, Конфигурация: Debug Win32 ------
1> stdafx.cpp
1> ConsoleApplication13.cpp
1>e:\games\visual studio\vc\include\xutility(2132): error C4996: 'std::_Copy_impl': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'
1> e:\games\visual studio\vc\include\xutility(2113): см. объявление "std::_Copy_impl"
1> c:\users\dandel1onka\documents\visual studio 2013\projects\consoleapplication13\consoleapplication13\consoleapplication13.cpp (28): см. ссылку на создание экземпляров функции шаблон при компиляции "_OutIt std::copy<_Ty*,_Ty*>(_InIt,_InIt,_OutIt)"
1> with
1> [
1> _OutIt=int *
1> , _Ty=int
1> , _InIt=int *
1> ]
1> c:\users\dandel1onka\documents\visual studio 2013\projects\consoleapplication13\consoleapplication13\consoleapplication13.cpp (33): см. ссылку на создание экземпляров функции шаблон при компиляции "void radian_sort<int,9>(T (&)[9])"
1> with
1> [
1> T=int
1> ]
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
Модератор
Эксперт JS
5197 / 2079 / 406
Регистрация: 06.01.2013
Сообщений: 4,793
14.05.2015, 11:10 6
DanDeL1oN, соберите проект с флагом -D_SCL_SECURE_NO_WARNINGS
0
1 / 1 / 0
Регистрация: 11.02.2015
Сообщений: 115
14.05.2015, 13:45  [ТС] 7
FraidZZ, можете еще подскасазть что означает ошибка: 1>c:\users\dandel1onka\documents\visual studio 2013\projects\consoleapplication14\consoleapplication14\consoleapplication14.cpp (21): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
0
Модератор
Эксперт JS
5197 / 2079 / 406
Регистрация: 06.01.2013
Сообщений: 4,793
14.05.2015, 13:52 8
DanDeL1oN, в 21 строке точно нет ошибки... У Вас в файле именно этот код строчка в строчку, или вы добавили что-то своё?
0
1 / 1 / 0
Регистрация: 11.02.2015
Сообщений: 115
14.05.2015, 13:57  [ТС] 9
FraidZZ, да, у меня точно такой же, строчка в строчку
0
14.05.2015, 13:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2015, 13:57
Помогаю со студенческими работами здесь

Составить программу циклической перестановки элементов одномерного массива
Составить программу циклической перестановки элементов одномерного массива а(n) при которой i...

Составить одномерный массив В из элементов исходного массива по правилу
Дан одномерный массив С, состоящий из n-элементов. Составить одномерный массив В из элементов...

Алгоритм перестановки элементов
Здравствуйте. Кто нибудь подскажите алгоритм перестановки элементов таким образом: дан вектор...

Составить рекурсивный алгоритм вычисления суммы элементов массива
Пожалуйста помогите составить алгоритм вычисления суммы элементов массива


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru