【Java学习日记】编程题整理-8.01 二分查找法
冒泡排序
1.数列必须是顺序排列好的
2.在判断首末位元素的时候要考虑到是否相等的情况(数组如果只有一个元素)
import java.util.Arrays;
import java.util.Scanner;
    public class MyTest {
	      public static void main(String[] args) {
		        Scanner input = new Scanner(System.in);
		        int[] list = {56,64,84,13,4,68,12};                //当然这个地方可以写成由用户从控制台输入,但图方便就采用这种直接给出的方式了
		        System.out.println("Enter the number you want to find ");
		        int n= input.nextInt();
		        Arrays.sort(list);                                         //把数组的元素从小到大排列好
		        System.out.println(Arrays.toString(list));  //显示排列好之后的数列
		        System.out.println("The flag is " + binarySearch(list,n));  
	      }
	
	      public static int binarySearch(int list[],int i) {
		        int low=0,high = list.length-1;
		        while(high >= low) {        //在调试的时候花时间最多的是找这个等号,如果不判断相等的情况,查找首位和末位的元素会出现不正确
			          int mid = (high+low)/2;
			          if(i<list[mid]) {
				            high = mid -1;
			          }
			          else if(i == list[mid]){
				            return mid;
			          }
			          else 
				         low = mid + 1;
		        }
		        return -1 -low;          //个人觉得返回-1也是可以的
	      }
	
}
啊啊啊啊,因为近几日为情所困今日犹然,所以学习的进度被落下了很多。明天一定要复现插入排序和选择排序。数组就到这里先告一段落。希望明天能复习到对象和类,时间太久都已经快忘光了。就像从头开始学一样。啊啊啊。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号