import java.io.*;
public class paixu{
public void sort(int [] data){
for(i=1;i<data.length;i++){
for(j=data.length-1;j>i;j--){
if(data[j]<data[j-1]){
swap(data,j,j-1);
}
}
}
}
public void swap(int [] data,i,i-1){
int a;
a=data[i];
data[i]=data[i-1];
data[i-1]=a;
}
public static void main(String args []){
int data []={1,5,3,9,8,6,7};
data.sort();
for(i=1;i<data.length;i++){
System.out.print(data[i]+" ");
}
}
}

解决方案 »

  1.   

    data.sort(); // 编译没问题么?应该是sort(data); 吧
      

  2.   


    冒泡排序public class Test
    {
        public static void main(String args[])
        {
            int[] m =
            { 2, 8, 43, 3, 33, 1, 35, 34, 6, 9 };
            int[] n = sort(m);
            for (int i = 0; i < m.length; i++)
            {
                System.out.println(n[i] + "\n");
            }    }    /* 冒泡排序算法 */
        public static int[] sort(int[] m)
        {
            int intLenth = m.length;
            /*执行intLenth次*/
            for (int i = 0; i < intLenth; i++)
            {
                /*每执行一次,将最小的数排在后面*/
                for (int j = 0; j < intLenth - i - 1; j++)
                {
                    int a = m[j];
                    int b = m[j + 1];
                    if (a < b)
                    {
                        m[j] = b;
                        m[j + 1] = a;
                    }
                }
            }
            return m;    }
    }
      

  3.   

    public void swap(int [] data,i,i-1){
      

  4.   

    恩,data.sort();应该是data.sort(data);
    但是编译的时候是提示
    paixu.java:12: 需要 <标识符>
            public void swap(int [] data,i,i-1){
                                          ^
    paixu.java:25: 需要 ')'
    }
    ^
    2 错误
    不知道这是什么意思
      

  5.   

    呵呵 改好了!看来没经验真是可怕 范很多基本错误
    import java.io.*;
    public class paixu{
    public void sort(int [] data){
    for(int i=0;i<data.length;i++){
    for(int j=data.length-1;j>i;j--){
    if(data[j]<data[j-1]){
    swap(data,j);
    }
    }
    }
    }
    public void swap(int [] data,int i){
    int a;
    a=data[i];
    data[i]=data[i-1];
    data[i-1]=a;
    }
    public static void main(String args []){
    int data []={5,3,9,8,6,7,1};
    paixu a=new paixu();
    a.sort(data);
    for(int i=0;i<data.length;i++){
    System.out.print(data[i]+" ");
    }
    }
    }
      

  6.   

    bubble sort程序是没错,说几点看法:
    1.命名最好用英文,paixu这样的方法名总觉得别扭
    2.这样的基础算法可以用static,不需要实例一个对象
    3.swap(int[] data,int i)这个方法不直观,不看方法体,不知道是要交换i和i-1,这里可以不用单独增加这个方法,直接在排序时交换,或者改成swap(int[] data,int i,int j)
      

  7.   

    public void swap(int [] data,i,i-1)和swap(data,j,j-1);
    的问题swap方法需要参数有问题另外 你这排序有点乱
      

  8.   

    错误忒多,,好多怎么都不定义啊,,i,j, 
    改好如下:
    import java.io.*; class paixu{
      public static void sort(int [] data){ 
         for(int i=1;i<data.length;i++){ 
            for(int j=data.length-1;j>i;j--){ 
            if(data[j]<data[j-1]){
        swap(data,j,j-1); 
          }
         }
         }
       } 
       public static void swap(int[] data,int i,int j) {
         int a; 
         a = data[i]; 
         data[i] = data[i-1]; 
         data[i-1] = a; 
       } 
       public static void main(String args []) { 
          int data []={1,5,3,9,8,6,7}; 
           sort(data); 
          for(int i=1;i<data.length;i++){
            System.out.print(data[i]+" ");
           } 
        }
    }
      

  9.   


        public void sort(int [] data){ 
            // 这个方法是可以优化的
             // 如果对于以已经有序的情况,可以不用进行for(j=data.length-1...);这个内循环的
             // 方法是在if语句中加上一个 flag 标志
             // 当数据交换的时候 改变 flag,flag作为外循环的一个条件
            for(i=1;i<data.length;i++){
            //for(i=1;i<data.length && flag;i++){
                for(j=data.length-1;j>i;j--){
                    if(data[j]<data[j-1]){
                        swap(data,j,j-1);
                        // flag = ?
                    }
                }
            }
        }楼主 加油!
      

  10.   

    sort()已经在在java中封装好拉,我开始也你那样做,建议你多看java 的API文挡