⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gray.java

📁 Gray码的实现
💻 JAVA
字号:
package Method;

public class Gray {
	public static void main(String[] args) {
		String[] string=new String[1<<5];
		string=Grays(5);
		for(int i=0;i<(1<<5);i++)
			System.out.print(string[i]+".");
	}
	public static String[] Grays(int n)
	{			
		String[] s=new String[1<<n];
		if(n==1)
			{
			s[0]="0";
			s[1]="1";
			}
		else
			{
			int n1,n2,n3;			
			n2=n/2;                                  //将n拆分成n1和n2的形式 递归调用实现   
			n1=n-n2;
			String[] s1=new String[1<<n2];
			s1=Grays(n2);
			String[] s2=new String[1<<n1];
			s2=Grays(n1);
			for(int i=0;i<(1<<n2);i++)
				{
				n3=(1<<n1)+1;                         //这个变量用户将一定位置的S调换
				for(int j=0;j<(1<<n1);j++)
				{
					if(i%2!=0)
					{
						n3=n3-2;
						s[i*(1<<n1)+j+n3]=s1[i]+s2[j];//实现有些变量的逆转
					}
					else
						s[i*(1<<n1)+j]=s1[i]+s2[j];
				}
			}
			}
		return s;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -