zoukankan      html  css  js  c++  java
  • 【Java基础】选择排序、冒泡法排序、二分法查找

    1.选择排序:

    
    

    //改进后的选择排序,减少交换的次数
    public static void sortSelect(int arr[]) {
    //用于存放最小数的下标
    int s;
    for (int i = 0; i < arr.length; i++) {
    s = i;
    for (int j = i + 1; j < arr.length; j++) {
    if (arr[s] > arr[j]) {
    //记录最小值的下标值
    s = j;
    }
    }
    //如果最小数的下标值改变,则交换
    if (s != i) {
    int temp = arr[i];
    arr[i] = arr[s];
    arr[s] = temp;
    }

    }

    }



    2.冒泡法排序

    
    
    public static void BubbleSort(int[] arr) {
    for (int i = 0; i < arr.length - 1; i++) {
    for (int j = 0; j < arr.length - i - 1; j++) {
    if (arr[j] < arr[j + 1]) {
    int temp = arr[j];
    arr[j] = arr[j + 1];
    arr[j + 1] = temp;
    }
    }
    }
    }



    3.二分法搜索

    /**
    	 * @param a	需要搜索的数组
    	 * @param num	需要搜索的数字
    	 * @return		搜索到的数字的下标,没有找到则返回-1
    	 */
    	public static int searchByBinary(int[] a, int num) {
    
    		if (a.length == 0) {
    			return -1;
    		}
    
    		int start = 0;
    		int end = a.length;
    		int m = (start + end) / 2;
    		while (start <= end) {
    			if (a[m] == num) {
    				return m;
    			}
    			if (a[m] > num) {
    				end = m - 1;
    			}
    			if (a[m] < num) {
    				start = m + 1;
    			}
    			m = (start + end) / 2;
    		}
    		return -1;
    	}


  • 相关阅读:
    HDU1316 fib+高精度
    HDU1868
    HDU2586 LCA
    HDU1113 字符串处理
    HDU1115 几何+多边形重心
    HDU1124
    HDU1110 几何
    HDU1103
    HDU2670 DP
    linux 下查看机器是cpu是几核的
  • 原文地址:https://www.cnblogs.com/oversea201405/p/3749583.html
Copyright © 2011-2022 走看看