数据结构与算法-冒泡排序算法

  • 2019 年 10 月 26 日
  • 筆記

简介

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

代码示例

package *;    import java.math.BigDecimal;  import java.util.Date;    /**   * @program: data-structure   * @description: 冒泡排序算法   * @author: ChenWenLong   * @create: 2019-09-10 14:06   **/  public class BubbleSort {        /**       * 功能描述: 仅支持int类型       * 〈冒泡排序:比较相邻的两个元素,如果第一个比第二个大则将两个交换顺序)       *       * @params : [numbers]       * @return : void       * @author : cwl       * @date : 2019/9/10 14:07       */      public void bubbleSort(int[] numbers){          for(int i=1;i<numbers.length;i++){              for(int j=0;j<numbers.length-i;j++){                  if(numbers[j]>numbers[j+1]){                      int temp=numbers[j];                      numbers[j]=numbers[j+1];                      numbers[j+1]=temp;                  }              }          }      }        /**       * 功能描述: 仅支持long类型       * 〈〉       *       * @params : [numbers]       * @return : void       * @author : cwl       * @date : 2019/9/10 14:10       */      public void bubbleSort(long[] numbers){          for(int i=1;i<numbers.length;i++){              for(int j=0;j<numbers.length-i;j++){                  if(numbers[j]>numbers[j+1]){                      long temp=numbers[j];                      numbers[j]=numbers[j+1];                      numbers[j+1]=temp;                  }              }          }      }        /**       * 功能描述: double       * 〈〉       *       * @params : [numbers]       * @return : void       * @author : cwl       * @date : 2019/9/10 14:10       */      public void bubbleSort(double[] numbers){          for(int i=1;i<numbers.length;i++){              for(int j=0;j<numbers.length-i;j++){                  if(numbers[j]>numbers[j+1]){                      double temp=numbers[j];                      numbers[j]=numbers[j+1];                      numbers[j+1]=temp;                  }              }          }      }        /**       * 功能描述: char       * 〈〉       *       * @params : [numbers]       * @return : void       * @author : cwl       * @date : 2019/9/10 14:10       */      public void bubbleSort(char[] numbers){          for(int i=1;i<numbers.length;i++){              for(int j=0;j<numbers.length-i;j++){                  if(numbers[j]>numbers[j+1]){                      char temp=numbers[j];                      numbers[j]=numbers[j+1];                      numbers[j+1]=temp;                  }              }          }      }        /**       * 功能描述: 比较字符串长度       * 〈〉       *       * @params : [numbers]       * @return : void       * @author : cwl       * @date : 2019/9/10 14:12       */      public void bubbleSort(String[] numbers){          for(int i=1;i<numbers.length;i++){              for(int j=0;j<numbers.length-i;j++){                  if(numbers[j].length()>numbers[j+1].length()){                      String temp=numbers[j];                      numbers[j]=numbers[j+1];                      numbers[j+1]=temp;                  }              }          }      }        /**       * 功能描述: BigDecimal       * 〈〉       *       * @params : [numbers]       * @return : void       * @author : cwl       * @date : 2019/9/10 14:13       */      public void bubbleSort(BigDecimal[] numbers){          for(int i=1;i<numbers.length;i++){              for(int j=0;j<numbers.length-i;j++){                  if(numbers[j].compareTo(numbers[j+1]) == 1){                      BigDecimal temp=numbers[j];                      numbers[j]=numbers[j+1];                      numbers[j+1]=temp;                  }              }          }      }        /**       * 功能描述: Date       * 〈〉       *       * @params : [numbers]       * @return : void       * @author : cwl       * @date : 2019/9/10 14:18       */      public void bubbleSort(Date[] numbers){          for(int i=1;i<numbers.length;i++){              for(int j=0;j<numbers.length-i;j++){                  if(numbers[j].compareTo(numbers[j+1]) == 1){                      Date temp=numbers[j];                      numbers[j]=numbers[j+1];                      numbers[j+1]=temp;                  }              }          }      }    }