常用的两种算法:冒泡排序和选择排序

1.冒泡排序(排序后的结果 :从小到大):

class demo1{

    public static void main(String[] args){

         int[] strArr = new int[]{1, 2,57,48,24};
         int temp = 0;

         for(int i = 0; i < strArr.length - 1; i++){

             for(int j = 0; j < strArr.length - 1 - i; j++){
              
             if(strArr[j] > strArr[j + 1]){
             temp = strArr[j];
             strArr[j] = strArr[j + 1];
             strArr[j + 1] = temp;
             }

            }  
       }
         for(int i = 0; i < strArr.length; i++){
            System.out.print(strArr[i]);
              }
   }
}

 因为每次循环去执行if里面的语句,而if里面总是strArr[j]与strArr[j + 1]作比较,所以假如有五个元素要进行排序的话,(外面的for语句每走一次叫一个来回)第一次走一个来回并(第二个for循环)最后一次循环时,应该是strArr[3]与strArr[4]作比较,所以j 最大等于3,因此 j < strArr.length - 1 - i。

 2.选择排序(排序后的结果 :从大到小):

class demo1{

    public static void main(String[] args){

         int[] strArr = new int[]{1, 2,57,48,24};
         int temp = 0;

         for(int i = 0; i < strArr.length - 1; i++){

             for(int j = i + 1; j <= strArr.length - 1 ; j++){
              
             if(strArr[i] < strArr[j]){
             temp = strArr[j];
             strArr[j] = strArr[i];
             strArr[i] = temp;
             }

            }  
       }
         for(int i = 0; i < strArr.length; i++){
            System.out.print(strArr[i]);
              }
   }
}

 选择排序的思路是:每次拿出前面的一个数跟后面的其它的数依次作比较

原文地址:https://www.cnblogs.com/WNof11020520/p/6076259.html