public class Main { private static int binarySearch(int[] array,int v){ //[left,right】 int left = 0; int right = array.length-1; //区间内还有一个数,需要继续找,没有数就可以停止查找 //如[9,9] while(left<=right){ //防止越界 int m = left+(right-left)/2; if(v == array[m]){ return m; }else if(v<array[m]){ right = m-1; }else{ left = m+1; } } return -1; } private static void bubbleSort(int[] array){ //外部的循环表示的是,冒泡的次数 //一次冒泡可以解决一个数的问题 //一共需要array.length //更优化的方式是array.length-1 for(int i=0;i<array.length;i++){ //每次冒泡之前假设数组已经有序 boolean sorted = true; //一次冒泡的过程,保证最大的数被推到最后去 for(int j=0;j<=array.length-2-i;j++){ //保证相邻的两个数,最大的在后面 if(array[j]>array[j+1]){ int t = array[j]; array[j]=array[j+1]; array[j+1]=t; sorted = false; } } //如果过程中一次交换都没发生过,假设有序成立 if(sorted == true){ break; } } } public static void main(String[] args){ int[] array = new int[]{ 9,5,2,7,4,3,8,6,0,1 }; bubbleSort(array); for(int i=0;i<array.length;i++) { System.out.println(array[i]); } } }
二分查找(左闭右闭)
猜你喜欢
转载自blog.csdn.net/family_love_1998/article/details/88944671
今日推荐
周排行