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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 羽狼之翼 中级黑马   /  2015-1-8 20:43  /  1071 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天来给大家分享下,数组常见的操作,代码比较简单,可能也总结的不全乎,就当作回忆一下知识吧。

//关于数组操作的一些方法
class TheArrayDemo {
       
        //位置置换方法(不需要提供出去,所以设为private)
        private static void swap(int [] arr,int x,int y)
        {
                int temp = arr[x];
                arr[x] = arr[y];
                arr[y] = temp;
        }
       
        //冒泡排序
        public static void bubbleSort(int []arr)
        {
                //外层一共比较arr.length-1次,因为最后一个数不用比。
                for ( int x=0; x<arr.length-1; x++)
                {
                        //外层每比较一次,内层需要比较的次数就少一次,所以和x关联上,
                        //减1是为了防止y+1越界。
                        for ( int y=0; y<arr.length-x-1; y++)
                        {
                                if (arr[y]>arr[y+1])
                                {
                                        //调用位置置换的方法
                                        swap(arr,y,y+1);
                                }
                        }
                }
        }
       
        //选择排序
        public static void selectSort(int [] arr)
        {
                for (int x=0; x<arr.length; x++)
                {
                        //y从x+1开始和x角标的值进行比较,因为当前角标和当前角标比,没有意义。
                        for (int y=x+1; y<arr.length; y++)
                        {
                                if(arr[x]>arr[y])
                                {
                                        //调用位置置换的方法
                                        swap(arr,x,y);
                                }
                        }
                }
        }
       
        //打印数组
        public static void printArray(int arr[])
        {
                System.out.print("[");
                for (int x=0; x<arr.length; x++)
                {
                        if (x!=arr.length-1)
                                System.out.print(arr[x]+",");
                        else
                                System.out.print(arr[x]+"]");
                }
        }
       
        //查找数组中的最大值
        public static int getMax(int [] arr)
        {
                int max = arr[0];
                for (int x =0; x<arr.length; x++)
                {
                        if (arr[x]>max)
                        {
                                max = arr[x];
                        }
                }
                return max;
        }
       
        //查找数组中的最小值
        public static int getMin(int [] arr)
        {
                int min = arr[0];
                for (int x =0; x<arr.length; x++)
                {
                        //如果
                        if (arr[x]<min)
                        {
                                min = arr[x];
                        }
                }
                return min;
        }
       
        //查找某个数字在数组中的位置(折半查找)
        public static int getPosition(int arr[] ,int key)
        {
                int min = 0;
                int max = arr.length-1;
                int mid = (min+max)/2;
                //注意:折半查找必须是对有序数列进行,
                //所以先调用一个排序方法对给出的数组进行排序操作。
                selectSort(arr);
                while (arr[mid]!= key)
                {
                        if (arr[mid]>key)
                        {
                                max = mid - 1;
                        }
                        else if (arr[mid]<key)
                        {
                                min = mid + 1;
                        }
                        if (min > max)
                                return -1;
                        mid = (min+max)/2;
                }
                return mid;
        }
       
        //查找某个数字在数组中的位置
        //返回要查找的数字在数组中第一次出现的位置,如果没有就返回-1
        public static int getPosition_2(int arr[] ,int key)
        {
                for(int x=0; x<arr.length; x++)
                {
                        if(arr[x]==key)
                                return x;
                }
                return -1;
        }
}



以上就是今天分享的内容了,大家一起回忆一下吧,会记得更牢固哦~  一起加油!加油!

点评

很好!  发表于 2015-1-8 20:51

评分

参与人数 1黑马币 +20 收起 理由
李一白_ + 20 赞一个!

查看全部评分

4 个回复

倒序浏览
顶!!!!!!!!!!!!!
回复 使用道具 举报
雪中送炭 明天数组 THANK YOU!!!
回复 使用道具 举报
李一白_ 发表于 2015-1-8 21:19
顶!!!!!!!!!!!!!

谢谢!黑马币对我很重要,真是雪中送炭,夏天送风扇啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马