转载自http://www.codeweblog.com/snake-algorithm-java-implementation/#
public class test {
/**
* Describes a :
* 5 Line 5 column snake-like algorithm
* (0,0)(4,4)- Line 1 and countdown 1 Difference between rows 4
* (1,0)(4,3)(0,1)(3,4)- Line 2 and countdown 2 Difference between rows 3
* (0,2)(2,4)(1,1)(3,3)(2,0)(4,2)- The first 3 rows and countdown 3 Difference between rows 2
* (3,0)(4,1)(2,1)(3,2)(1,2)(2,3)(0,3)(1,4)- The fourth row and countdown 4 Difference between rows 1
* Section 5 behavior segmentation line
* According to the above description, obtain the following algorithm
*/
/**
* Description of second :
* dao Variable functions :
* The main calculation downward diagonal coordinate values .
* For example, :5 Line 5 columns
* {
(0,0) -- Known as line 0
(1,0)(0,1) -- Known as line 1
(0,2)(1,1)(2,0) -- Known as line 2
(3,0)(2,1)(1,2)(0,3) -- Known as line 3
}--- All coordinates on the diagonal
(0,4)(1,3)(2,2)(3,1)(4,0)--- Here called diagonal 4
{
(4,1)(3,2)(2,3)(1,4) -- Known as line 5
(2,4)(3,3)(4,2) -- Known as line 6
(4,3)(3,4) -- Known as line 7
(4,4) -- Known as line 8
}--- Downward diagonal all coordinates
dao The maximum value of the variable is line * Column
Get all the coordinates of the diagonal values by dao variables and temp Variable functions
*/
/**
* @param irow Line
* @param icol Column
* @param sheLength Sections snake segment, which is line with diagonal
*/
public void sheAglo(int irow,int icol,int sheLength){
int row = 0,col = 0;
int ban = (sheLength-1)/2+1;
int array[][] = new int[irow][icol];
int m = 1,num = ban - 1;
int dao = irow*icol;
for(int i=0;i<ban;i++){
row = col = i;
int temp = dao-i;// The first n rows downward diagonal values from dao-i Start
if(i%2==0){ // Handling double-row
/**
* (0,0)
* (0,2)(1,1)(2,0)
* Characteristic is the increment, decrement column rows
*/
while(col>=0){
System.out.print("["+(i-col)+"]["+(col)+"]("+m+"),");
if(i!=ban-1){// This is the diagonal
System.out.print("["+(i-col+num)+"]["+(col+num)+"]("+(temp++)+"),");
}
array[i-col][col] = m;
dao--;
col--;
m++;
}
}else if(i%2!=0){// Handle single-line
/**
* (1,0)(0,1)
* (3,0)(2,1)(1,2)(0,3)
* Characteristics are diminishing, incrementing column rows
*/
while(row>=0){
System.out.print("["+(row)+"]["+(i-row)+"]("+m+"),");
if(i!=ban-1){
System.out.print("["+(row+num)+"]["+(i-row+num)+"]("+(temp++)+"),");
}
array[row][i-row] = m;
dao--;
row--;
m++;
}
}
num--;
System.out.println();
}
}
public static void main(String args[]){
test test = new test();
test.sheAglo(6,6,11);
}
}
另外一个重要网站:http://users.ecs.soton.ac.uk/msn/book/new_demo/Snakes/
分享到:
相关推荐
蛇形算法,也被称为Snake算法,是由G.M.Kass、W.R.Terzopoulos和K.Blake在1988年提出的一种图像处理方法,主要用于图像分割和边界提取。该算法是主动轮廓模型的一种,其核心思想是通过迭代优化一个能量函数来寻找...
### Levenberg-Marquardt算法:实现与理论 #### 引言 Levenberg-Marquardt(LM)算法是一种广泛应用于非线性最小二乘问题求解的有效方法。该算法结合了梯度下降法和高斯-牛顿法的优点,通过调整参数来平衡这两者...
Algorithm-algorithm-implementation-in-java-javascript-scala.zip,本项目的目标是提供Java、JavaScript和斯卡拉的可重用算法集合。,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
Recurrent Reinforcement Learning Algorithm Matlab Implementation.zip
SNAKE算法代码,图像处理,matlab程序。
《传统Snake算法在图像分割中的应用与实现》 Snake算法,又称为Active Contour Model(活动轮廓模型),是由Kass、Witkin和Terzopoulos于1988年提出的一种图像分割方法。该算法主要利用能量最小化原理,通过迭代的...
Java算法大全是一个集合了多种Java实现的算法资源,旨在帮助开发者深入理解和掌握算法。这个压缩包包含了一些关键的算法解释和实例,对于学习和提升Java编程能力,特别是算法设计与分析方面,非常有帮助。 首先,...
本文将深入探讨Java语言中的算法和数据结构实现,以"Algorithm-java-algorithms-implementation.zip"为例,揭示其中蕴含的丰富知识。 一、算法概述 算法,简单来说,就是解决特定问题的步骤或过程。它定义了一组...
Genetic Algorithm Implementation
distance vector algorithm implementation in C. you can simulate router using local device's ports. Makefile is included for UNIX/LINUX users.
根据提供的文件信息,“algorithm-essentials-java”似乎是一份关于Java编程语言中算法实现的文档。下面将基于文档中提到的各个部分来详细介绍其中涉及的关键知识点。 ### 引言 在计算机科学领域,算法是解决问题...
【标题】"ars.scr.zip_ant_ant algorithm_ant algorithm java_ars.scr_蚂蚁" 提到的是一个关于JAVA实现的蚂蚁算法(Ant Colony Optimization Algorithm,简称ACO)的压缩包资源。蚂蚁算法是一种仿生优化算法,它受到...
《DS和Algorithm Analysis in Java》是一门针对数据结构与算法分析的课程,主要使用Java语言进行教学。课程的目标是帮助学生理解和分析不同数据结构和算法的时间复杂度与空间复杂度,以便于在实际问题中有效地应用。...
通过《Genetic Algorithm Implementation Using Matlab》这份资料,读者不仅可以理解遗传算法的基本概念,还能掌握在Matlab中实现这一算法的具体步骤,从而在实际问题中应用遗传算法,解决复杂优化问题。无论你是...
- 0.18 关联数组实现(Associative array implementation):关联数组是一种使用键值对存储数据的数据结构,在Java中通常由Map接口的实现类如HashMap等来体现。 - 2.1 到2.3 包含了三章内容,依次是GNU通用公共许可...
使用java语言实现匈牙利算法。可实现任务最优分配,以及旅行商问题
**Java ECC算法详解** 在密码学领域,椭圆曲线加密(ECC,Elliptic Curve Cryptography)是一种基于数学难题的公钥加密技术,因其高效性和安全性而备受关注。Java作为广泛使用的编程语言,提供了对ECC的支持,使得...
在这个"Algorithm-A-Star-Java-Implementation.zip"文件中,我们很显然会看到一个使用Java语言实现的A*算法。 首先,我们要理解A*算法的基本原理。它以启发式函数(h(n))和实际路径成本(g(n))为基础,其中g(n)是从...
DELPHI Rijndael algorithm implementation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~The implementation is based on an original code.The CBC-mode bug fixed.As the example of API usage is complemented by simple ...