01. Java的经典排序--选择排序--冒泡排序--折半查找(二分查找)

Java的经典排序--选择排序--冒泡排序--折半查找

选择排序

选择排序 3 2 1 5 8
0 1 3 2 5 8
1 1 2 3 5 8
2 1 2 3 5 8
3 1 2 3 5 8
public static void main(String[] args) 	{
  int[] arr={3,2,1,5,8};
  selectSort(arr);
  for(int i = 0 ; i < arr.length ; i ++){
    System.out.println(arr[i]) ;
  }
}
//选择排序
	public static void selectSort(int[] arr){
		for(int i = 0 ; i < arr.length - 1 ; i ++){
			for(int j = i + 1 ; j < arr.length ; j ++){
				if(arr[i] > arr[j]){
					int temp = arr[i] ;
					arr[i] = arr[j] ;
					arr[j] = temp ;
				}
			}
		}
	}

冒泡排序(大数下沉)

冒泡排序 3 2 1 5 8
0 2 1 3 5 8
1 1 2 3 5 8
2 1 2 3 5 8
3 1 2 3 5 8
public static void main(String[] args) 	{
  int[] arr={3,2,1,5,8};
  bubbleSort(arr);
  for(int i = 0 ; i < arr.length ; i ++){
    System.out.println(arr[i]) ;
  }
}
   //冒泡排序大数下沉
	public static void bubbleSort(int[] arr){
        //需要比较多少轮
		for(int i = 0 ; i < arr.length - 1 ; i ++){
            //每一轮需要比较多少次
			for(int j = 0 ; j < arr.length - 1 - 1; j ++){
				if(arr[j] > arr[j + 1]){
					int temp = arr[j] ;
					arr[j] = arr[j + 1] ;
					arr[j + 1] = temp ;
				}
			}
		}
	}

折半查找

折半查找 3 2 1 5 8
3 1 2 3 5 8
public static void main(String[] args) 	{
        int index = binarySearch(arr , 9);
		System.out.println(index) ;
}
  //折半查找
	public static int binarySearch(int[] arr , int n){
		int start = 0 ;//起始值
		int end = arr.length - 1 ;//末尾值
		while(start <= end){
           //中间那个值
			int mid = (start + end) / 2 ;
			if(arr[mid] ==n){
				return mid ;
			}
            //值如果在左边
			else if(arr[mid] > n ){
				end = mid - 1 ;
			}
            //值在右边
			else{
				start = mid + 1 ;
			}
		}
        //没有值则返回一个空的
		return -1 ;
	}
posted @ 2018-10-07 21:39  Steve--DZC  阅读(132)  评论(0编辑  收藏  举报