package qau.edu.variable;
public class Test { public static void main(String[] args) { int[] M = { 9, 8, 7, 6, 5, 4, 3, 2, 1 };// 声明一个数组进行赋值; int n = M.length; for (int i = 0; i < n - 1; i++) {// 开始进行比较;i控制趟数; for (int j = 0; j < n - 1; j++) {// j控制第i趟比较中,位置j上的数字; if (M[j + 1] < M[j]) {// i+1位置的数字和i+1前面的数字进行比较 int temp = M[j + 1]; M[j + 1] = M[j]; M[j] = temp; } } } for (int i = 0; i <= n - 1; i++) { System.out.print(M[i] + "\t"); } }}

解决方案 »

  1.   

    这个是冒泡排序嘛,冒泡的精髓是两次for循环,但是很显然你的内层循环参数不对,应该是
    for(int j=i;j<=n-2;j++)
    内层循环要从i开始走,依次和后面的数进行比较
      

  2.   

    上面的for(int i=0,i<=n-1,i++)
    下面的for(int j=0;j<=n-i;j++)
      

  3.   


    if (M[i + 1] < M[j]) {// i+1位置的数字和i+1前面的数字进行比较 int temp = M[i + 1]; M[i + 1] = M[j]; M[j] = temp; }
    其实lz交换的位置的时候写错了, i+1位置的数字和i+1前面的数字进行比较,那么i+1位置的数字如果比j位置的数字小的话就要调换位置。
    输出结果:
    1 2 3 4 5 6 7 8 9
      

  4.   

    //标准冒泡排序算法,比较高效的。
    public static void main(String[] args) {  
    int[] numb=new int[]{3,42,57,1,32,24}; 
    int len=numb.length;
     int i,j; 
    int temp; 
    System.out.println("排序前的数组各个值:"); 
    for(i=0;i<len;i++) {
         System.out.print(numb[i]+"\t"); 

    System.out.println("\n"); 
    for(i=1;i<=len;i++) {
       for(j=len-1;j>=1;j--) {  
           if(numb[j]>numb[j-1]) {  
               temp=numb[j];
               numb[j]=numb[j-1];
                numb[j-1]=temp;
          }
     } 
    }
     System.out.println("排序后的数组各个值:"); 
    for(i=0;i<len;i++) {  
        System.out.print(numb[i]+"\t");
      }
    }
     }
      

  5.   

    int[] M = {22,3,11,8,55,102,6};
    int len = M.length;
    for(int i=0;i<len-1;i++){
    for(int j=0;j<len-i-1;j++){
    if(M[j]>M[j+1])
    M[j] = M[j+1]+0*(M[j+1]=M[j]);
    }
    }
      

  6.   

    很佩服,不过还是写了个小东西分享一下...
    //java 8 运行.
    private static void sortArrayList(int size){
            List<Integer> list = new ArrayList<Integer>(size+5);
            Random random = new Random();
            for (int i = 0; i <= size; i++) {
                list.add(random.nextInt(100));
            }
            list.sort(new Comparator<Integer>() {
                @Override
                public int compare(Integer o1, Integer o2) {
                    return o1==o2?0:o1>o2?-1:1;
                }
            });
            list.forEach(System.out::println);
        }
      

  7.   

    这是根据你的修改过来的,自己对比下哪里错了!还有就是排序的算法有很多种,冒泡排序只是其中之一,而且是比较差的算法!
    public class Test { public static void main(String[] args) { int[] M = {9,8,7,6,5,4,3,2,1};//声明一个数组进行赋值;   int n = M.length ;    for(int i=0;i<=n-2;i++){//开始进行比较;i控制趟数;
       
          for(int j=0;j<n-i-1;j++){//j控制第i趟比较中,位置j上的数字;
     
        if(M[j+1]<M[j]){//i+1位置的数字和i+1前面的数字进行比较
       
           int temp = M[j+1];   M[j+1] = M[j];   M[j] = temp ;
        
        }  }    }    for(int i=0;i<=n-1;i++){
        
          System.out.print(M[i] + "\t");    } } }