用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

关于数组的相关操作(如数组的求最大值,最小值,选择排序 二分法查找)

2013-04-03 作者: 海大软件1102班举报

[java]代码库

/*这个类是关于数组的相关操作,如数组的求最大值,最小值,选择排序  二分法查找等 */
public class ArrayTools {
 
    public int max(int[] array) {
        int max = Integer.MIN_VALUE;
 
        for (int i = 0; i < array.length; i++) {
            if (array[i] > max) {
                max = array[i];
            }
        }
 
        return max;
    }
 
    public int min(int[] array) {
        int min = Integer.MAX_VALUE;
 
        for (int i = 0; i < array.length; i++) {
            if (array[i] < min) {
                min = array[i];
            }
        }
 
        return min;
    }
 
    /**
     * 选择排序
     *
     * @param array
     */
    public void selectSort(int[] array) {
        int minIndex;// 最小索引
        int temp;
 
        for (int i = 0; i < array.length; i++) {
            minIndex = i;// 假设每轮第一个元素为最小元素
            // 从假设的最小元素的下一元素开始循环
            for (int j = i + 1; j < array.length; j++) {
                // 如果发现有比当前array[smallIndex]更小元素,则记下该元素的索引于smallIndex中
                if ((array[j] < array[minIndex])) {
                    minIndex = j;
                }
            }
 
            // 先前只是记录最小元素索引,当最小元素索引确定后,再与每轮的第一个元素交换
            temp = array[i];
            array[i] = array[minIndex];
            array[minIndex] = temp;
 
        }
    }
 
    /**
     * 二分法查找,前提是已排序
     *
     * @param array
     * @param des
     * @return
     */
    public static int binarySearch(int[] array, int des) {
 
        int low = 0;
        int high = array.length - 1;
        while (low <= high) {
            int middle = (low + high) / 2;
            if (des == array[middle]) {
                return middle;
            } else if (des < array[middle]) {
                high = middle - 1;
            } else {
                low = middle + 1;
            }
        }
        return -1;
    }
 
    /**
     * 测试
     *
     * @param args
     */
    public static void main(String[] args) {
        int[] array = { 5, 9, 1, 0, 4, 2, -6, 3, 8, 0, 76, -7, 7, 11, 12, 19,
                8, 9, 10, 28, 53 };
        ArrayTools arrayTools = new ArrayTools();
 
        System.out.println("原数组:");
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
 
        System.out.println();
        System.out.println("选择排序结果:");
        arrayTools.selectSort(array);
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
        System.out.println();
        System.out.println("二分法查找 9 的位置:" + arrayTools.binarySearch(array, 9));
 
        System.out.println("最大值:" + arrayTools.max(array));
        System.out.println("最小值:" + arrayTools.min(array));
 
    }
}

[代码运行效果截图]


关于数组的相关操作(如数组的求最大值,最小值,选择排序  二分法查找)


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...