实验二实现一个排序算法(任选一种)。
方法声明如下:
public static void sort(int [] a) 
编写main方法,测试你的排序算法。
实验三实现二分搜索算法。
方法声明如下:
public static int binSearch(int [] a, int key)
其中如在数组a中找到key值,返回相应的下标值,若找不到,则返回-1。
编写main方法,构造适当的有序数组,测试该方法。

解决方案 »

  1.   

    1.public class Test1 {
    public static void main(String[] args) {
    int[] a = {2,3,8,6,7,9,10,1};
    sort(a);
    for(int i : a) {
    System.out.print(i + "    ");
    }
    }

    public static void sort(int[] a) {
    //冒泡排序,从小到大排序
    int temp;
    for(int i=0; i<a.length; i++) {
    for(int j=0; j<a.length - 1 - i; j++) {
    if(a[j] > a[j + 1]) {
    temp = a[j];
    a[j] = a[j + 1];
    a[j + 1] = temp;
    }
    }
    }
    }
    }2.public class Test2 {
    public static void main(String[] args) {
    int[] a = {1,2,3,4,5,7,8,9,12};
    System.out.println(binSearch(a, 6));
    }

    public static int binSearch(int[] a, int key) {
    int left = 0, right = a.length;
    int mid;

    while(left <= right) {
    mid = (left + right) / 2;
    if(key > a[mid]) {
    left = mid + 1;
    } else if(key < a[mid]) {
    right = mid - 1;
    } else {
    return mid;
    }
    }

    return -1;
    }
    }