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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© New灬狼 中级黑马   /  2015-12-29 21:02  /  344 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/**
        New灬狼
        2015年12月27日21:37:38

*/

/*
需求:学习冒泡排序法。

思路:
        冒泡排序法:bubble sort,是因为越大的元素会慢慢“浮”到数列的顶端而故名。

原理:
        1,比较相邻的元素;如果第一个比第二大,就交换他们两个;0,1,一组,1,2,一组;
        2.对每组元素进行比较、交换,从0开始,到结束;最后的元素就是最大的元素;
        3,重复上面的比较、交换,除了最后一个元素;
        4,直到没有任何一组数据需要比较,数组也就排序完成了。

步骤:
1,新建ArrayTest02.java;
2,新建函数 bubbleSort;
3,新建数组;
4,遍历数组;
5,排序;
6,遍历数组。

不是规律的规律:
        selectSort改变内循环的条件;
        bubbleSort改变内循环的条件;同时,为了防止角标越界,要-1;

*/



class ArrayTest02
{
        //bubbleSort        返回值类型无,未知变量是一个数组。

        public static void bubbleSort (int [] R)
        {
                for (int x = 0;x<R.length ;x++ )
                {
                        for (int y = 0;y<R.length-x-1 ;y++ )       
                       
                        //y<R.length-x-1:        -x:比较的元素减少的个数; -1:防止y+1的角标越界;

                        {
                                if (R[y]>R[y+1])       

                                //        <:从大到小;        >:从小到大
                                {
                                        swap(R,y,y+1);
                                }
                               

                        }
                }       
        }
       

        //swap
        public static void swap(int [] arr,int a,int b)
        {
                int temp = arr[a];
                arr[a] = arr[b];
                arr[b] = temp;
        }


        //遍历数组 display
        public static void display(int[] arr )
        {
                System.out.print("数组中的元素是:\n{ ");

                for (int x=0;x<arr.length ;x++ )
                {
                        if(x!=arr.length-1)
                        {
                                System.out.print("["+x+"]="+(arr [x])+" ,");
                        }
                        else
                        {
                                System.out.println("["+x+"]="+(arr [x])+" }\n");
                        }
                }
        }

        public static void main(String[] args)
        {
        int [] arr = {3,1,8,4,6,5,9,7,2};
                display(arr);

                bubbleSort(arr);

                //Arrays.sort(arr);                java中的排序方法
                display(arr);


        }

}

0 个回复

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