常见算法


选择排序

选择排序的思想

  • 每轮选择当前位置,开始找出后面的较小值与该位置交换

选择排序的关键

  • 确定总共需要选择几轮: 数组的长度-1
  • 控制每轮从以前位置为基准,与后面元素选择几次。
public static void main(String[] args){
  int[] arr = {5,1,3,2};
  //第一循环控制选择几轮
  for (i = 0;i < arr.length - 1;i++){
    for(j = i + 1;j < arr.length;j++){
      if(arr[i] > arr[j]){
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
      }
    }
  }
  System.out.println(Arrays.toString(arr));
}

二分查找

  • 二分查询性能好,二分查找的前提是必须是排好序的数据。
  • 二分查找相当于每次去掉一半的查找范围。
public static void main(String[] args){
  int[] arr = {10,14,16,25,28,30,35,88,100};
  System.out.println(binarySearch(arr,25));
}
  public static int binarySearch(int[] arr,int data){
  int left = 0;
  int right = arr.length-1;
  while(left <= right){
    int mid = (left + right)/2;
    if(data > arr[mid]){
      left = mid + 1;
    }else if(data < arr[mid]){
      right = mid -1;
    }else{
      return mid;
    }
  }
  return -1;//未找到
}

文章作者: 泷少
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 泷少 !
评论
  目录