二分法查找和插入排序

查找程序:

public class chazhao {//缺点性能较低  
  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
  
        int data=3;  
        int [] numbers={1,2,4,5,3};  
        for(int number:numbers){  
            if(number==data){  
                System.out.println("存在");  
                return;  
            }  
        }  
        System.out.println("No");  
    }  
  
}  
二分法查找:
搜索数据与有序数组(比如升序)中间元素比较以确定在中间元素左边还是右边,如果在右边,则调整最小搜索索引值,然后进入下次循环;如果在左边,则调整最大搜索索引值,然后进入下次循环;如果相等则当前位置就是查找数据所在位置,停止循环;
public class zhaban {//z折半查找是相对来说最快的一种查找方式  
  
    public static void main(String[] args) {  
        int data=6;  
        int [] numbers={1,2,3,4,5}; //下标0-4  
         int low=0;  
         int a=0;  
         int high=numbers.length-1;  
         while(low<=high){  
             System.out.println("............");  
             int middle=(low+high)/2;  
             if(data==numbers[middle]){  
                 System.out.println("Yes");  
                 a=1;  
                 break;   
             }else if(data>numbers[middle]){  
                 low=middle+1;  
                   
             }else if(data<numbers[middle]){  
                 high=middle-1;  
             }            
         }  
          
         if(a==0){  
             System.out.println("No");  
         }  
          
    }  
  
}  
插入排序:
二分法查找:搜索数据与有序数组(比如升序)中间元素比较以确定在中间元素左边还是右边,如果在右边,则调整最小搜索索引值,然后进入下次循环;如果在左边,则调整最大搜索索引值,然后进入下次循环;如果相等则当前位置就是查找数据所在位置,停止循环;


猜你喜欢

转载自blog.csdn.net/qq_40831381/article/details/80184944
今日推荐