У меня есть бинарный растр, как это:Алгоритм рекурсивного алгоритма или наводнения для растра?
101101
010111
101011
111101
Теперь мне нужно, чтобы сделать эту строку за строкой: (! Только ячейки в строке) Переход через строку и подсчитать соседние ячейки, которые являются 1 , И я хотел бы получить вектор или что-то вроде этого. , например, для растра выше было бы:
1st row: 1 2 1
2nd row: 1 3
3rd row: 1 1 2
4th row: 4 1
Я много читал о алгоритме заливки и так далее. Но я просто не понимаю.
Я попробовал этот рекурсивный алгоритм:
rec=function(x)
{if (x==0)
{return 0)
else return(1+rec(x+1))}
Но это не работает.
ОК спасибо большое за ваш ответ! Я попробовал это, и это сработало для небольшого растра. Но мне приходится иметь дело с большими растрами (180x480), и это занимает слишком много времени. Возможно, моя версия недостаточно эффективна. – Cocilein
Этот алгоритм имеет наилучшее время выполнения - он посещает каждый элемент растра только один раз. Он должен быстро вспыхивать для любого разумного размера растра. – MBo