java算法: 冒泡排序 + 选择排序 + 二分法查找

二分法查找:(前提: 1,数值型数组; 2,必须 ---升序或降序)

java算法: 冒泡排序 + 选择排序 + 二分法查找_第1张图片

public static int find(int[] arr,int val) {
	//查找--下标
	int start=0;
	int end=arr.length-1;
	int mid=(start+end)/2;
		
	while(startval) {
			end=mid-1;
		}else {
			start=mid+1;
		}
		
		mid=(start+end)/2;//更新中间位置下标
	}
	return -1;//没找到
}

冒泡排序:

java算法: 冒泡排序 + 选择排序 + 二分法查找_第2张图片

//冒泡排序:内层重复循环
public static void bubbleSort(int[] arr) {
	
	for (int i = 0; i < arr.length-1; i++) {
	    for (int j = 0; j < arr.length-1-i; j++) {
	 	//从头比较大小: 大的后排
		if(arr[j]>arr[j+1]) {
		    arr[j]=( arr[j+1] = arr[j]+arr[j+1] )-arr[j];//a=和-a
		    arr[j+1]=arr[j+1]-arr[j];//b=和-b
		  }
	    }	
	}
}

选择排序:

java算法: 冒泡排序 + 选择排序 + 二分法查找_第3张图片

//选择排序:  从前往后,保存最大的值
private static void selectSort(int[] arr) {
	for (int i = 0; i < arr.length-1; i++) {
		for (int j = i+1; j < arr.length-1; j++) {
		//取出外层的值--挨次比较大小,收取单次循环的最大值
	           if(arr[i]

java算法: 冒泡排序 + 选择排序 + 二分法查找_第4张图片


//选择排序: 优化版
private static void selectSort(int[] arr) {
	for (int i = 0; i < arr.length - 1; i++) {
			
		int maxIndex=i;//默认下标i处: 为max
		for (int j = i + 1; j < arr.length - 1; j++) {
				
			// 取出外层的值--挨次比较大小,收取单次循环的最大值
			if (arr[i] < arr[j]) {
				if(arr[maxIndex]

你可能感兴趣的:(编程语言-java,算法)