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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 914360849 中级黑马   /  2015-5-23 23:25  /  330 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.*;
//数组的排序

class  ArrayDemo2
{
        public static void main(String[] args)
        {
                //定义数组
                int[] arr={12,-6,59,2,0,-21,-3,4,8,9};
                //打印原数组
                printArray(arr);
                Arrays.sort(arr);
                printArray(arr);
                //选择排序从小到大排序
                xuanZePaiXu( arr);
                printArray(arr);
                //冒泡排序
                maoPaoPaiXu(arr);
                printArray(arr);

        }
        //选择排序
        public static void xuanZePaiXu(int[] arr)
        {       
                System.out.println("选择排序结果:");
                for(int x=0;x<arr.length-1;x++)
                {
                        for(int y=x+1;y<arr.length;y++)
                        {
                                if(arr[x]>arr[y])
                                {//换位操作
                                        arr[x]=arr[x]+arr[y];
                                        arr[y]=arr[x]-arr[y];
                                        arr[x]=arr[x]-arr[y];
                                }
                        }
                }
       
        }
        //冒泡排序
        public static void maoPaoPaiXu(int []arr)
        {
                System.out.println("冒泡排序结果:");
                for(int a=0;a<arr.length-1;a++)
                {
                        for(int b=0;b<arr.length-a-1;b++)//-1,目的避免角标越界。-a,每次比较的元素在减少。
                        {
                                if(arr[b]<arr[b+1])
                                        //换位操作
                                {
                                        arr[b]  =arr[b]+arr[b+1];
                                        arr[b+1]=arr[b]-arr[b+1];
                                        arr[b]  =arr[b]-arr[b+1];
                               
                                }
                        }
                }
        }

        //打印数组
        public static void printArray(int [] arr)
        {
                System.out.print("[");
                for(int y=0;y<arr.length;y++)
                {
                        if(y==arr.length-1)
                                System.out.print(arr[y]);
                        else       
                                System.out.print(arr[y]+",");
                }
                System.out.println("]");

        }
       
}

8 个回复

倒序浏览
写的不错哇,一个小建议,数组元素换位操作可单独写一个方法swap,提高代码复用性
回复 使用道具 举报
我来赚技术分
回复 使用道具 举报
有点水啊
回复 使用道具 举报
欢迎多提意见
回复 使用道具 举报
qian0217wei 来自手机 高级黑马 2015-5-24 00:43:49
地板
写算法是最好加上思想,另外你这水贴也太明显了!如果有什么疑问或者心得体会可以分享,你这完全就是看了视频贴个代码啊!
回复 使用道具 举报
欢迎多提意见
回复 使用道具 举报
用手把嘴遮住干嘛?水了大家忍不住笑吗?还是欲抱琵琶半遮面?
回复 使用道具 举报
不错不错 继续加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马