首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

看一下小弟我的程序-多线程比较排序算法的快慢

2012-02-21 
看一下我的程序--多线程比较排序算法的快慢我才学多线程,有很多东西不懂,下面的程序不知道错在哪里,请高手

看一下我的程序--多线程比较排序算法的快慢
我才学多线程,有很多东西不懂,下面的程序不知道错在哪里,请高手指点一下,谢谢!


public   class   paixu  
{       public     int[]   text;
        public     int   n=text.length;

        public   paixu(int[]   text)
              {
                    this.text=text;
              }
        class   insert   extends   Thread         //插入排序
              {       int   i,j,temp;
    private   int[]   text;
                      public   insert(int[]   text)
                            {
this.text=text;
                            }
                      public   void   run()
          {       for(i=0;i <n-1;i++)
                      {     temp=text[i+1];
          j=1;
          while(j> -1&&temp <=text[j])
                {       text[j+1]=text[j];
                                                            j--;
}
          text[j+1]=temp;
      }

  for(int   i=0;i <n;i++)
                              System.out.println(text[i]+ " ");
            }
 
  }
        class   maopao   extends   Thread             //冒泡排序
{
        private   int[]   text;
        int   i,j,flag=1;
        int   temp;
        public   maopao(int[]   text)
            {
  this.text=text;
              }
        public   void   run()
              {     for(i=1;i <n&&flag==1;i++)
          {     flag=0;
                  for(j=0;j <n-i;j++)
      {         if(text[j]> text[j+1])
  {       flag=1;
          temp=text[j];
          text[j]=text[j+1];
            text[j+1]=temp;
  }
      }
            }
 
    for(int   i=0;i <n;i++)


            System.out.println(text[i]+ " ");

  }
  }
        public   static   void   main(String   args[])
{       int[]   text={20,50,12,2,30};
        new   paixu(text);
        (new   insert(text)).start();
        (new   maopao(text)).start();

}

}

[解决办法]
语法上就有好多错误啊-_-!

(1):

public int[] text;
public int n=text.length;

text数组还没有初始化,执行n=text.length会报空!
因此n=text.length需要放到:

public paixu(int[] text)
{
this.text=text;
n=text.length;
}
里面

(2)insert,maopao作为inner class,他们都不是Static(静态),因此,
实例创建时需要主类的实例来创建,如下

paixu thread = new paixu(text);
( thread.new insert(text)).start();
( thread.new maopao(text)).start();

thread.new X(X为inner class);

其他的你再调试吧~

[解决办法]
不用内部类好像就不错了

热点排行