A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package cn.itcast.day13;

import java.util.Arrays;

public class BinarySearch {

        /**
         * @param args
         *            折半查找
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                // 定义一个数组
                int[] arr = { 1, 42, 14, 53, 23, 75, 45, 19, 55, 44, 43, 134 };
                printArray(arr);
                // 折半查找必须是有序的查找,所以首先排序
                Arrays.sort(arr);
                printArray(arr);
                // 折半查找
                int a = binarySearch(arr, 75);
                System.out.println(a);
        }

        // 定义输出方法。用于打印数组
        public static void printArray(int[] arr) {
                for (int i = 0; i < arr.length; i++) {
                        if (i == 0) {
                                System.out.print("[" + arr[i]);
                        } else {
                                System.out.print("," + arr[i]);
                        }
                }
                System.out.print("]");
                System.out.println();
        }

        // 折半查找方法
        public static int binarySearch(int[] arr, int value) {
                // 定义最大、最小、以及中间索引
                int maxIndex = arr.length - 1;
                int minIndex = 0;
                int midIndex = (maxIndex + minIndex) / 2;

                while (arr[midIndex] != value) {
                        if (arr[midIndex] > value) {
                                maxIndex = midIndex - 1;//
                        } else if (arr[midIndex] < value) {
                                minIndex = midIndex + 1;//
                        }
                        if (minIndex > maxIndex) {
                                return -1;//
                        }
                        midIndex = (maxIndex + minIndex) / 2;
                }
                return midIndex;//
        }

}

9 个回复

倒序浏览
package cn.itcast.day13;

import java.util.Arrays;

public class BubbleSort {

        /**
         * @param args
         *            冒泡排序
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                // 定义一个数组
                int[] arr = { 1, 2, 63, 43, 5, 16, 7, 28, 19, 12 };
                printArray(arr);
                // 方法1
                // 使用Arrays.sort排序
                Arrays.sort(arr);
                // 调用打印方法
                printArray(arr);

                // 方法2
                // 遍历比较。使用冒泡法,两两比较,一轮过后,最大数在最大索引处,然后第二轮继续比较
                for (int i = 0; i < arr.length; i++) {
                        for (int j = 0; j < arr.length - 1 - i; j++) {
                                if (arr[j] > arr[j + 1]) {
                                        int temp = arr[j];
                                        arr[j] = arr[j + 1];
                                        arr[j + 1] = temp;
                                }
                        }
                }
                printArray(arr);
        }

        // 定义输出方法。用于打印数组
        public static void printArray(int[] arr) {
                for (int i = 0; i < arr.length; i++) {
                        if (i == 0) {
                                System.out.print("[" + arr[i]);
                        } else {
                                System.out.print("," + arr[i]);
                        }
                }
                System.out.print("]");
                System.out.println();
        }
}


回复 使用道具 举报
各种查找排序
回复 使用道具 举报

老师的意思是。。。只有它俩才是最屌的
回复 使用道具 举报
好细致啊 学习了
回复 使用道具 举报

文档注释省略了。。那才是重点呢
回复 使用道具 举报
iamzk 中级黑马 2015-8-22 23:32:41
7#
STARlove 发表于 2015-8-22 23:27
老师的意思是。。。只有它俩才是最屌的

很对,很经典
回复 使用道具 举报
挺好,感谢分享~
回复 使用道具 举报 1 0
萌萌哒。说的太棒了!
回复 使用道具 举报 1 0

不客气。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马