排序,折半查找

来源:互联网 发布:程序员培训班多少钱 编辑:程序博客网 时间:2024/04/28 00:53
  1.   //选择排序
  2.   public static void selectSort(int[] arr){
  3.     for(int i=0; i<arr.length-1; i++){
  4.       for(int j=i+1; j<arr.length; j++){
  5.         if(arr[i]>arr[j]){
  6.           int temp=arr[i];
  7.           arr[i]=arr[j];
  8.           arr[j]=temp;
  9.         }
  10.       }
  11.     }
  12.   }
  13.   
  14.   //冒泡排序
  15.   public static void bubbleSort(int[] arr){
  16.     for(int i=0; i<arr.length-1; i++){
  17.       for(int j=0; j<arr.length-i-1; j++){
  18.         if(arr[j]>arr[j+1]){
  19.           int temp=arr[j];
  20.           arr[j]=arr[j+1];
  21.           arr[j+1]=temp;
  22.         }
  23.       }
  24.     }
  25.   }
  26.   
  27.   //插入排序
  28.   public static void insertSort(int[] arr){
  29.     for(int i=0; i<arr.length-1; i++){
  30.       int temp=arr[i];
  31.       while(i>0 && arr[i-1]>temp){
  32.         arr[i]=arr[i-1];
  33.         i--;
  34.       }
  35.       arr[i]=temp;
  36.     }
  37.   }
  38.   //折半查找
  39.   public static int halfSearch(int[] arr, int key){
  40.     int min=0, max=arr.length-1, mid;
  41.     while(min<=max){
  42.       mid=(min+max)>>1;
  43.       if(key>arr[mid]){
  44.         min=mid+1;
  45.       }else if(key<arr[mid]){
  46.         max=mid-1;
  47.       }else
  48.         return mid;
  49.     }
  50.     return min;
  51.   }
原创粉丝点击