码迷,mamicode.com
首页 > 编程语言 > 详细

4. JavaSE-数组 & 常用算法

时间:2015-07-21 15:13:18      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:java数组 选择排序 冒泡排序

学习数组,需要弄清楚数组定义、内存分配及特点、操作常见问题、常见操作、数组嵌套等概念和程序实现。

    1. 定义:同一种数据类型的集合,其实数组就是一个容器

    2. 好处:数组有索引(下标从0开始),方便操作

    3. 格式:元素类型  []  数组名  =  new  元素类型[元素个数或者数组长度]

             元素类型  []  数组名  =  new  元素类型[]{元素1,元素2...}

    4. 例如:

           int [] arr = new int[10]

           int [] arr = new int[]{1,2,3,4,5,6,7}

           int [] arr = {1,2,3,4,5,6}


数组常见操作:

    最基本的存和取(对下标的操作)


遍历:

        arr.length  将获取数组的长度(数组的长度)

    求最大值最小值(设置临时变量遍历数组,找到最值元素的下标)


    注意:在求最值时候的陷阱,例如求最大值,将临时变量初始化为0,如果数组

          中元素全部小于0的话,结果就是不准确的,因此求最大最好初始化为最

          小值。。。或者直接使用数组角标来做参考最好

 

数组排序(选择、冒泡):

    int[] arr = new int[]{1,2,3,4.......}

 

    1. 选择排序

        for(int i=0;i<arr.length-1;i++)

        {

            for(int j=i;j<arr.length;j++)

            {

                if(arr[i]>arr[j])

                {

                    arr[i] = arr[i]^arr[j];

                    arr[j] = arr[i]^arr[j];

                    arr[i] = arr[i]^arr[j];

                }

            }

        }

 

    2. 冒泡排序

        for(int i=0;i<arr.length-1;i++)

        {

            for(int j=0;i<arr.length-i-1;j++)

            {

                if(arr[j]<arr[j+1])

                {

                    temp = arr[j];

                    arr[j] = arr[j+1];

                    arr[j+1] = temp;

                }

            }

        }

 

 

Java数组的性能问题:

    在选择排序中,进行了太多次的数据交换,这样会很浪费,可以选择使用变量记录最小(大)

     值的位置,然后当完成一次排序的时候,直接将标记的元素和起始元素对调

 

    for(int x=0;x<arr.length-1;x++)

    {    

        int index = x;

        for(int y=x+1; y<arr.length;y++)

        {        

            if(arr[index]<arr[y])

            {

                index = y;

            }

        }

        if(index != x)

        {

            swap(arr,xy);//交换xy的值

        }

    }

 

二维数组跟一维数组一样,举一反三即可!!!

    格式:

        int [][] arr = new int[3][4];

    注意:二维数组  必须指定第一维的长度

    

    int [][] arr = new int[3][]

    arr[0] = new int[3]

    arr[1] = new int[4]

    arr[2] = new int[5]

 

   arr.length == 3

   arr[1].length == 4

   int [][] arr1 = {{5,6},{3,4},{1,2}}


 

数组常见问题:

    数组越界、引用没有指向任何地方时,将会引发空指针异常

本文出自 “Keyman” 博客,请务必保留此出处http://keyman.blog.51cto.com/9807984/1676574

4. JavaSE-数组 & 常用算法

标签:java数组 选择排序 冒泡排序

原文地址:http://keyman.blog.51cto.com/9807984/1676574

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!