基础算法--java语言

  • 冒泡算法
    # 关于冒泡算法,时间复杂度为O(n²),通过循环操作将两两相邻中最小的那个数交换到最前面。

               /**
               *@Description:<p>冒泡排序算法实现</p>
               *@author  7
               *
               */
              public class BubbleSort {
                  
                  public static void bubbleSort(int[] arr) {
                      if(arr == null || arr.length == 0)
                          return ;
                      for(int i=0; i<arr.length-1; i++) {
                          for(int j=arr.length-1; j>i; j--) {
                              if(arr[j] < arr[j-1]) {
                                  swap(arr, j-1, j);
                              }
                          }
                      }
                  }
                  
                  public static void swap(int[] arr, int i, int j) {
                      int temp = arr[i];
                      arr[i] = arr[j];
                      arr[j] = temp;
                  }
              }
    
  • 选择排序
    #时间复杂度O(n)
    #选择排序的原理与冒泡类似,冒泡是相邻的进行交换,而选择排序是对当前值后面的值进行选择。
    #找到最小的值,然后和当前值进行比较,将小的值放在前面。
    public class SelectSort {

          public static void selectSort(int[] arr) {
              if(arr == null || arr.length == 0)
                  return ;
              int minIndex = 0;
              for(int i=0; i<arr.length-1; i++) { //只需要比较n-1次
                  minIndex = i;
                  for(int j=i+1; j<arr.length; j++) { //从i+1开始比较,因为minIndex默认为i了,i就没必要比了。
                      if(arr[j] < arr[minIndex]) {
                          minIndex = j;
                      }
                  }
                  
                  if(minIndex != i) { //如果minIndex不为i,说明找到了更小的值,交换之。
                      swap(arr, i, minIndex);
                  }
              }
              
          }
          
          public static void swap(int[] arr, int i, int j) {
              int temp = arr[i];
              arr[i] = arr[j];
              arr[j] = temp;
          }
      }
    
  • 插入排序
    #

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容