查找程序:
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"); } } }
插入排序:
二分法查找:搜索数据与有序数组(比如升序)中间元素比较以确定在中间元素左边还是右边,如果在右边,则调整最小搜索索引值,然后进入下次循环;如果在左边,则调整最大搜索索引值,然后进入下次循环;如果相等则当前位置就是查找数据所在位置,停止循环;