基本算法(更新中)

 1、折半查询

public class TestZheban {

	public static void main(String[] args) {
		
		int[] arr = {1,3,5,6,7,8,9,11,22,27};
		int max = arr.length-1;
		
		int left = 0;
		int right = arr.length-1;
		int count = 0;
		int key = 3;
		
		new TestZheban().fun(arr, left, right,key, count);
	}
	
	public void fun(int[] arr, int left, int right, int key,int count) {
		count++;
		int middle = (left + right) / 2;
		if(null != arr) {
			if(key == arr[middle]) {
				System.out.println("第"+count+"次 查到结果         " + arr[middle]);;
			} else if(key < arr[middle]) {
				right = middle-1;
				System.out.println("第"+count+"次 查询         " + arr[middle]);;
				fun(arr, left, right, key,count);
			} else {
				left = middle + 1;
				System.out.println("第"+count+"次 查询         " + arr[middle]);;
				fun(arr, left, right, key,count);
			}
		} else {
			System.out.println("数组为空");
		}
	}
}

 

2、 冒泡算法

public class TestMaopao {

	public static void main(String[] args) {
		
		int[] arr = {11,2,5,3,6,4,89,23,44};
		
		
		for (int i=0; i<arr.length; i++) {
			for (int j=0; j<arr.length-1; j++) {
				if(arr[j] < arr[j+1]) {
					int temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
			}
		}

		System.out.print("结果  : " );
		for (int i = 0; i < arr.length; i++) {
			System.out.print(" " + arr[i] );
		}
	}
}

 

3、jdk 自带 Arrays(结果 从小到大)

		 Arrays.sort(arr);  //进行排序
		 for(int i: arr){
			 System.out.println(i);
		 }

 

你可能感兴趣的:(算法)