マージソートのためにユーザー入力を取得したいので、メソッドで配列を使用していますが、 ..ar[]
の「シンボルが見つかりません」というエラーが発生します。ar[]
import java.util.*;
import java.io.*;
class Test
{
int Merge()
{
int q,p,r,i,l,m,j,t,k,w,x,s,u;
w=q-p+1;
x=r-q;
int[] L=new int [w+1];
int b=1;
for(s=1;s<=w+1;s++)
{
L[b]=s;
b++;
}
int[] R=new int [x+1];
int c=1;
for(t=1;u<=x+1;u++)
{
R[c]=u;
c++;
}
for(i=1;i<=w;i++)
{
L[i]=ar[p+i-1];
}
for(j=1;j<=x;j++)
{
R[j]=ar[q+j];
}
L[w+1]=1000;
R[x+1]=1001;
i=1;
j=1;
for(k=p;k<=r;k++)
{
if(L[i]<=R[j])
{
ar[k]=L[i];
i=i+1;
}
else
{
ar[k]=R[j];
j=j+1;
}
}
System.out.println("sorted array"+ar[k]);
}
public static void main(String ar[])
{
int a0=Integer.parseInt (ar[0]);
int a1=Integer.parseInt (ar[1]);
int a2=Integer.parseInt (ar[2]);
int a3=Integer.parseInt (ar[3]);
int a4=Integer.parseInt (ar[4]);
int a5=Integer.parseInt (ar[5]);
int a6=Integer.parseInt (ar[6]);
int a7=Integer.parseInt (ar[7]);
int a8=Integer.parseInt (ar[8]);
int a9=Integer.parseInt (ar[9]);
int p=a0,r=a9,q;
if(p<r)
q=(p+r)/2;
Test T=new Test();
T.Merge();
}
}