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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Morrfree 中级黑马   /  2015-8-13 22:19  /  290 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class ArrayMethodDemo {
        public static void main(String[] args) {
                int[] arr = new int[]{8,6,9,23,47,55,69};
//                bubble(arr);
//                print(arr);
                switchPaiXu(arr);
                print(arr);
                //二分查找法:通过不断比较中间值进行查找.
                int num = 55;
                halfSearch(arr,num);
        }

        private static void halfSearch(int[] arr,int num) {
                int start = 0;
                int end = arr.length-1;
                int mid = (start+end)/2;
               
                //当要查找的数组元素不等于中间索引代表的元素时:
                while (num != arr[mid]) {
                        //当查找的元素值小于中间角标所代表的元素的值时;
                        if (num < arr[mid]) {
                                end = mid - 1;
                        }else{
                                start = mid + 1;
                        }
                        //当查找的元素不存在时,返回-1;
                        if (start > end) {
                                System.out.println(-1);
                        }
                        mid = (start+end)/2;
                }
                System.out.println(mid);
        }

                private static void switchPaiXu(int[] arr) {
                        //选择排序:每一个数依次和其余的数依次比较
                        for (int i = 0; i < arr.length-1; i++) {
                                for (int j = i+1; j < arr.length-1-i; j++) {
                                        if (arr[i]>arr[j]) {
                                                int temp = arr[i];
                                                arr[i] = arr[j];
                                                arr[j] = temp;
                                        }
                                }
                        }
                }

                public static void print(int[] arr) {
                        for (int i = 0; i < arr.length; i++) {
                                System.out.println(arr[i]);
                        }
                }

                public static void bubble(int[] arr) {
                        //冒泡排序:相邻的两个数之间进行比较
                        for (int i = 0; i < arr.length-1; i++) {
                                for (int j = i+1; j < arr.length-1-i; j++) {
                                        if (arr[i]>arr[j]) {
                                                //用临时变量记录较大的数
                                                int temp = arr[i];
                                                arr[i] = arr[j];
                                                arr[j] = temp;
                                        }
                                }
                        }
                }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马