打卡参考书目:算法(第四版)
1.1
API:应用程序编程接口,在JAVA编程的时候会调用不同的API,也可以根据自己的需要写自己需要的API。《算法》这本书中陈列了很多自己的API,在后面的算法程序编写中会用到。
在https://algs4.cs.princeton.edu/home/上找到需要的API后放入自己的程序中就可以直接调用。
接下来介绍二分法:
二分查找是常用的快速查找的方法,使用前提是给定的数字组合是需要按照大小顺序排列的(有序数组)。程序涉及到了递归调用。以下展示二分查找的代码:
package com.java;
import java.util.Arrays;
import StdIn.StdIn;
//二分法
//要点:需要对数组提前进行大小排序,递归调用
public class erfensearch {
public static int rank(int key,int[] a)
{
int lo=0;
int hi=a.length-1;
int mid=lo+(hi-lo)/2;
while(lo<=hi)
{
mid=lo+(hi-lo)/2;
if(a[mid]<key)
lo=mid+1;
else if(a[mid]>key)
hi=mid-1;
else
return mid;
}
return -1;
}
public static void main(String[] args)
{
int[] a=new int [10];
for(int i=0;i<10;i++)
{
a[i]=i+2;
System.out.print(a[i]);
}//数组声明和初始化
System.out.println();
Arrays.sort(a);
while(!StdIn.isEmpty())
{
int key=StdIn.readInt();
if(rank(key,a)<0)//-1不存在
System.out.println("不存在!");
else
System.out.println(rank(key,a)+1);
}
}
}