Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
Результаты опроса: Автор - идиот?
Однозначно. Это же элементарно! 1 50.00%
Отсортировать просто, над выводом надо подумать. 1 50.00%
Вставками - бред. Пузырек рулит 0 0%
Сам не знаю, как сделать 0 0%
Голосовавшие: 2. Вы ещё не голосовали в этом опросе

 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Hose
0 / 0 / 0
Регистрация: 25.04.2009
Сообщений: 3
#1

Отсортировать массив змейкой - C++

25.04.2009, 18:55. Просмотров 1681. Ответов 6
Метки нет (Все метки)

Есть массив, который заполняется случайными числами (допустим, 0-9).
Отсортировать его по невозрастанию (каждый следующий элемент не более предыдущего) и вывести его змейкой, как показано на рисунке.

Примечания:
1. Отсортировать вставками
2. Запрещается вводить дополнительные массивы, сортировать в исходном двумерном.
3. Должен работать как с четным, так и нечетным размером

Помогите, плиз
0
Миниатюры
Отсортировать массив змейкой  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2009, 18:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отсортировать массив змейкой (C++):

Отсортировать массив по убыванию, затем добавить недостающий элемент и отсортировать массив по возрастанию - C++
2) В массиве a ...a встречаются по одному разу все целые числа от 0 до n, кроме одного. За n действий найти пропущенное число с конечной...

Заполнение змейкой, массив не 2D! - C++
Добрый день всем. вот получил задание по С++ заполнение змейкой, но не такое простое как кажется на первый взгляд( искал на форуме не...

Заполнить массив змейкой справа налево - C++
#include <stdlib.h> #include <stdio.h> #include <ctype.h> #include <conio.h> #include <math.h> #include <time.h> void...

Вывести массив змейкой(три вида) - C++
Привет всем.Помогите решить задачки по змейкам.В приложении лежит 3 варианта как надо сделать. Вариант а и в удалось найти у вас на...

Двухмерный массив (заполнить змейкой квадратную матрицу) - C++
Требуется заполнить змейкой квадратную матрицу так, как показано на рисунке справа: заполнение происходит с единицы из левого верхнего угла...

Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать - C++
Добрый Вечер! Написал первую часть программы по этому заданию"Ввести массив А. В массив В перенести все элементы массива А, стоящие правее...

6
Анонимус
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 16
25.04.2009, 19:03 #2
сортировку лучше квиксортом
0
ISergey
Maniac
Эксперт С++
1395 / 906 / 56
Регистрация: 02.01.2009
Сообщений: 2,706
Записей в блоге: 1
25.04.2009, 19:09 #3
Цитата Сообщение от Анонимус Посмотреть сообщение
сортировку лучше квиксортом
По уловию задачи :
Цитата Сообщение от Hose Посмотреть сообщение
1. Отсортировать вставками
0
Hose
0 / 0 / 0
Регистрация: 25.04.2009
Сообщений: 3
25.04.2009, 19:27  [ТС] #4
Сортировка вставками на малых массивах дает наилучший результат, к тому же ISergey правильно заметил - таково условие.

Предпочтительно на C (тогда я пойму ), но и на C++ не обижусь
0
Patch
2277 / 492 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
25.04.2009, 19:48 #5
да любым методом... написать формулу, приводящую координаты исходного массива к схеме змейки - и сортируй хоть пузырьками, хоть монте-карло...
0
Hose
0 / 0 / 0
Регистрация: 25.04.2009
Сообщений: 3
25.04.2009, 20:05  [ТС] #6
Это понятно, только вот ну не доходит до меня, как реализовать
0
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
25.04.2009, 21:18 #7
что то в этом духе наверно
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
26
27
28
i=0;
j=0;
k=0;
m=0;//i,j координаты в змейке, k,m-в исходном
perestanovka(k,m,i,j);//процедура перестановки элемента[k,m] и [i,j])
for(;(i<n)||(j<n);)//через кучу циклов задаем путь змейки
   {
   j++;
   k++; if (k==n) {k=0;m++}
   perestanovka(k,m,i,j);
   for(;(i<n)&&(j>0);)
      {
      j--;
      i++;
      k++; if (k==n) {k=0;m++}
      perestanovka(k,m,i,j);
      }
   i++;
   perestanovka(k,m,i,j);
   for(;(i>0)&&(j<n);)
      {
      i--;
      j++;
      k++; if (k==n) {k=0;m++}
      perestanovka(k,m,i,j);
      }
   }
//не тестил прогу, как пашет не знаю
Добавлено через 25 минут 44 секунды
можно при желании сразу выводить, тогда k,m будут координатами вывода, но если числа не одинаковой длины то тяжко придется
0
25.04.2009, 21:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2009, 21:18
Привет! Вот еще темы с ответами:

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька - C++
всем привет. народ помогите с прогой, конкретно с функцией sort (65 строка), она должна двухмерный массив перевести построчно в одномерный...

Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию - C++
создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию. получилось вот что: #include...

Создать линейный массив, отсортировать его в другой массив, вывести адрес всех елементов - C++
Помогите пожалуйста, за час нужно сдать , напишите код , только попроще создать линейный массив , отсортировать его в другой массив,...

Создать линейный массив, отсортировать его в другой массив, вывести адрес всех елементов - C++
Помогите пожалуйста с кодом ,нужно за час сдать , напишите код , только попроще Создать линейный массив, отсортировать его в другой...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.