forum.rastrnet.ru

forum.rastrnet.ru (http://forum.rastrnet.ru/index.php)
-   Программируем (http://forum.rastrnet.ru/forumdisplay.php?f=35)
-   -   Обход массива по спирали (http://forum.rastrnet.ru/showthread.php?t=4889)

PAPA_KARLO 21.04.2005 12:07

Обход массива по спирали
 
можете кто нибудь подсказать алгоритм обхода по спирали, по часовой стрелке квадратного массива нечётной размерности? Исходник не нада, просто алгоритм

COBEHOK 21.04.2005 20:29

примерно так
Код:

N - размер
A = array [0..N-1, 0..N-1]
i = 1  // просто счетчик
for(level = 0; level <= N/2; level++)
{
  for(cols1 = level; cols1 < N - level; cols++)
    A[level,cols1] = i++;
  for(rows1 = level + 1; rows1 < N - level; rows++)
    A[rows1,N-level-1] = i++
  for(cols2 = N-level-2; cols2 >= level; cols2--)
    A[N-level-1,cols2] = i++
  for(rows2 = N-level-2; rows2 > level; rows2--)
    A[rows2,level] = i++
}


PAPA_KARLO 22.04.2005 23:07

это на Сишке? Под Пас сможешь переделать или словами объяснить ? Синтаксис вобще не знаю

DeathMoroz 22.04.2005 23:15

а зачем вы такие задачки решаете? :) для развлечения?

PAPA_KARLO 23.04.2005 23:52

знакомые попросили, вот и задумался, 2 дня голову ломал, так ничего путнего и не придумал, обрывки какие то есть в голове, а аформить не могу

COBEHOK 25.04.2005 10:20

Цитата:

Сообщение от PAPA_KARLO
это на Сишке? Под Пас сможешь переделать или словами объяснить ? Синтаксис вобще не знаю

Это алгоритм как ты и просил

for(cols1 = level; cols1 < N - level; cols++) означает примерно следубщее
Цикл cols1 от (level) до (N - level) с шагом 1

for(cols2 = N-level-2; cols2 >= level; cols2--) означает
Цикл cols2 от (N-level-2) до (level) с шагом -1

A[level,cols1] = i++; означает i = i + 1; A[level,cols1]=i;

TiRex 16.05.2005 19:47

Цитата:

Сообщение от COBEHOK
A[level,cols1] = i++; означает i = i + 1; A[level,cols1]=i;

Ошибся ты немного.
A[level,cols1]=i++; означает A[level,cols1]=i; а только потом i=i+1;


Текущее время: 04:34. Часовой пояс GMT +7.

Powered by vBulletin® Version 3.8.4 Patch Level 5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot

Форум открыт в июле 2004 г.