數據結構與算法-選擇排序,插入排序

數據結構與算法-選擇排序,插入排序

選擇排序
原理:每次選擇最大的或最小的一個放在最前面後最後面
時間複雜度:O(n^2)
空間複雜度:O(1)
不穩定排序

/**
  * 選擇排序
  */
 public static void selectSort(int[] list) {
  int n = list.length;
  for(int i=0;i<n;i++) {
   int minIndex = i;
   for(int j=i+1;j<n;j++) {
    if(list[minIndex]>list[j]) {
     minIndex=j;
    }
   }
   int temp = list[minIndex];
   list[minIndex]=list[i];
   list[i]=temp;
  }
 }

插入排序
原理:每一輪向前面有序數列中按順序插入一個數
時間複雜度:O(n^2)
空間複雜度:O(1)
穩定排序

/**
  * 插入排序
  */
 public static void insertSort(int[] list) {
  int n = list.length;
  for(int i=1;i<n;i++) {
   int temp = list[i];
   int j=i-1;
   for(;j>=0&&temp<list[j];j--) {
    list[j+1]=list[j];
   }
   list[j+1]=temp;
  }
 }

這兩個沒見到過什麼優化方案,看代碼就應該懂了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章