黑马程序员技术交流社区

标题: 二分查找(折半查找) 小代码 [打印本页]

作者: STARlove    时间: 2015-8-22 23:11
标题: 二分查找(折半查找) 小代码
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;//
        }

}


作者: STARlove    时间: 2015-8-22 23:16
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:23
各种查找排序
作者: STARlove    时间: 2015-8-22 23:27
iamzk 发表于 2015-8-22 23:23
各种查找排序

老师的意思是。。。只有它俩才是最屌的
作者: 天使也掉毛    时间: 2015-8-22 23:30
好细致啊 学习了
作者: STARlove    时间: 2015-8-22 23:31
天使也掉毛 发表于 2015-8-22 23:30
好细致啊 学习了

文档注释省略了。。那才是重点呢
作者: iamzk    时间: 2015-8-22 23:32
STARlove 发表于 2015-8-22 23:27
老师的意思是。。。只有它俩才是最屌的

很对,很经典
作者: Zhaopassport    时间: 2015-8-25 22:28
挺好,感谢分享~
作者: 忧伤-hy    时间: 2015-8-25 22:32
萌萌哒。说的太棒了!
作者: STARlove    时间: 2015-8-25 23:41
Zhaopassport 发表于 2015-8-25 22:28
挺好,感谢分享~

不客气。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2