数组的常见操作

(视频教程所学)记录所学,非解疑。。。。

 

数组的常见操作

 

遍历

//数组的遍历
public class ArrayDemo1
{
    public static void main(String[] args)
    {
        //定义一个数组
        int[] arr = new int[]{1,2,3,4};                                        

        //数组的遍历其实就是一个for循环的过程
        for(int x = 0; x < arr.length ; x++)
        {
            System.out.println("arr[" + x + "] = " + arr[x] + ";");
        }
    }
}

 

求最值

public class ArrayDemo1
{
    public static void main(String[] args)
    {
        int[] arr = new int[]{4,2,5,9,1};
        int max = getMax(arr);

        System.out.println(max);
    }

    //定义一个方法,以便提高代码的扩展性
    /**
    *参数为int类型的数组:int[]
    *有一个int类型的返回值
    */
    public static int getMax(int[] arr)
    {
        int max = 0;
        
        //遍历数组中的每一个数和max进行比较,取其中的最大值。
        for(int x = 0; x <arr.length; x++)
        {
            if(arr[x] >= max)
                max = arr[x];
        }

        return max;
    }
}

 

排序(选择排序、冒泡排序)

选择排序:

//选择排序
/*
思路:
1、先拿出第一个位置(即角标为0的位置)上的数字与第二个位置(即角标为1的位置)上的数字进行比较,把小的值替换到第一个位置上,
    然后再拿第一个位置上的数字和第三个位置上的数字进行比较,最后会排出其中最小的一个值,放在数组的第一位置上。
2、从第二个位置上的数字开始从新开始一遍在进行比较,同样会排出剩余的数字里面最小的一个值,放在数组的第二个位置上。
3、以此类推,把整个数组的顺序排好。
*/
public class ArrayDemo2
{
    public static void main(String[] args)
    {
        int[] arr = new int[]{2,6,4,5,1};

        sort(arr);
        printArr(arr);
    }

    /**
    *一个int类型数组参数:int[] arr
    *因为Array为引用类型,所以没有返回值。void
    */
    public static void sort(int[] arr)
    {
        for(int x = 0; x < arr.length-1; x++)
        {
            for(int y = x + 1; y < arr.length; y++)
            {
                int temp = 0;

                if(arr[y] < arr[x])
                {
                    temp = arr[x];
                    arr[x] = arr[y];
                    arr[y] = temp;
                }
            }
        }
    }


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

 

冒泡排序

//冒泡排序
/*
思路:
1、拿出第一个位置上的数字和第二个位置上的数字进行比较,把大的数字往后移,然后再把第二个位置上的数字和第三个位置上的数
    字进行比较,同样的把较大的数字往后移。最后会发现数组中最大的数字被移到最后了。
2、再进行一遍第一步,但因为最后一个位置已经是最大的数字了,所以就不用比较了。
3、以此类推,直到把数组排列好。
*/

public class ArrayDemo3
{
    public static void main(String[] args)
    {
        int[] arr = new int[]{2,6,4,5,1};

        sort(arr);
        printArr(arr);
    }

    public static void sort(int[] arr)
    {
        //因为x是从0开始的,所以x<arr.length-1,循环了4次。
        for(int x = 0; x < arr.length -1 ; x++)
        {
            /*
            arr.length-1-x解析:当x=0时,会排出最大值放在最后的位置,然后x增加了一个值,如果y<arr.length-1的话,则还会遍历一次
            最大值,所以这里需要再减一次x。
            */
            for(int y = 0; y < arr.length - 1 -x; y++)
            {
                int temp = 0;

                if(arr[y] > arr[y+1])
                {
                    temp = arr[y];
                    arr[y] = arr[y+1];
                    arr[y+1] = temp;
                }
            }
        }
    }

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

 

 

posted @ 2013-09-10 18:20  Soul_Fighter  阅读(201)  评论(0)    收藏  举报