冒泡排序

相邻的两个数逐个的作比较,如果前一个数比后一个数小那么就交换过来,当第一轮交换完毕之后最小的值一定产生在末尾。

class Demo6{
    
    public static void main(String[] args){
        int[] scores = {90, 98, 80, 89, 60};
        //在主函数里调用方法printArray先输出未排序之前的数组的值
        printArray(scores);
        System.out.println();
        //在主函数里调用orderArray方法对数组进行冒泡排序
        orderArray(scores);
        //输出排序之后的数组
        printArray(scores);
    }    
        
    //定义一个冒泡排序的方法
    public static void orderArray(int[] array){
        //利用外层循环控制需要比较的是几轮
        for(int i = 0; i < array.length - 1; i++){
            //利用内层循环控制每轮需要比较多少次
            for(int j = 0; j < array.length - i -1; j++){
                //这时比较数组里的前一位数和后一位数的大小
                if(array[j+1] > array[j]){
                    //如果后一位数大于前一位数则进行交换
                    //定义一个变量来接收后一位数的数值
                    int temp = array[j+1];
                    //此时把前一位较小的数值赋给array[j+1]
                    array[j+1] = array[j];
                    //然后把变量temp里较大的数值赋给array[j]
                    array[j] = temp;
                    //此时已经完成了冒泡排序
                    }
                }
            }
        }
        //定义一个方法用来打印出该数组
        public static void printArray(int[] array){
            for(int i = 0; i< array.length; i++){
                System.out.print(array[i]+"	");
                }
            }
        
        
}

另(注释):

class Demo3{
    public static void main(String[] args){
        //定义一个数组
        int[] scores = {90,80,79,93,78,61};
        printArray(scores);
        System.out.println();
        orderArray(scores);
        printArray(scores);
        
    }
    public static void orderArray(int[] array){
          //外层循环控制需要比较的是几轮
          for(int i = 0; i < array.length-1; i++){
              //内层循环控制的是每一轮需要比较几次
              for(int j = 0; j < array.length-i-1; j++){
                  //对数组里相邻的两个数进行比较,如果后一位数大于前一位数,则发生交换
                  if(array[j+1] > array[j]){
                      //先定义一个变量用来存储数组里相邻的两个数里的后一位数字
                      int temp = array[j+1];
                      //如果能够进入循环里则说明后一位数大于前一位数,此时将前一位数的值赋给后一位
                      array[j+1] = array[j];
                      //然后把temp里大的那个值传给array[j]
                      array[j] = temp;
                      
                      }
                  }
              }
           
        }
        public static void printArray(int[] array){
            for(int i = 0; i < array.length; i++){
                System.out.print(array[i]+"	");
                }
            }
    
}
原文地址:https://www.cnblogs.com/chenttc/p/7725461.html