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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘丽丽sir 中级黑马   /  2015-11-29 23:56  /  943 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.*;
/*
对给定数组进行排序。
{5,1,6,4,2,8,9}


*/
class ArrayTest2
{

        /*
        选择排序。
        内循环结束一次,最值出现头角标位置上。
        */
        public static void selectSort(int[] arr)
        {
                for (int x=0; x<arr.length-1 ; x++)
                {
                        for(int y=x+1; y<arr.length; y++)
                        {
                                if(arr[x]>arr[y])
                                {
                                        /*
                                        int temp = arr[x];
                                        arr[x] = arr[y];
                                        arr[y]= temp;
                                        */
                                        swap(arr,x,y);
                                }
                        }
                }
        }
        /*
        冒泡排序
        */

        public static void bubbleSort(int[] arr)
        {
                for(int x=0; x<arr.length-1; x++)
                {                                                                       
                        for(int y=0; y<arr.length-x-1; y++)//-x:让每一次比较的元素减少,-1:避免角标越界。
                        {
                                if(arr[y]<arr[y+1])
                                {
                                        /*
                                        int temp = arr[y];
                                        arr[y] = arr[y+1];
                                        arr[y+1] = temp;
                                        */
                                        swap(arr,y,y+1);
                                }
                        }
                }
        }

        /*
        发现无论什么排序。都需要对满足条件的元素进行位置置换。
        所以可以把这部分相同的代码提取出来,单独封装成一个函数。
        */
        public static void swap(int[] arr,int a,int b)
        {
                int temp = arr[a];
                arr[a] = arr[b];
                arr[b] = temp;
        }
        public static void main(String[] args)
        {
                int[] arr = {5,1,6,4,2,8,9};
                //排序前;
                printArray(arr);

                //排序
                //selectSort(arr);
                //bubbleSort(arr);

                //Arrays.sort(arr);//java中已经定义好的一种排序方式。开发中,对数组排序。要使用该句代码。
                //排序后:
                printArray(arr);
                       
        }

        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.println(arr[x]+"]");

                }               
        }
}

3 个回复

倒序浏览
冒泡排序和选择排序是考试重点!!
回复 使用道具 举报
厉害!!!!!!

评分

参与人数 1黑马币 +20 收起 理由
唐僧 + 20 神马都是浮云

查看全部评分

回复 使用道具 举报
强烈支持楼主ing
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马