黑马程序员技术交流社区

标题: 数组的两种排序方式 [打印本页]

作者: 914360849    时间: 2015-5-23 23:25
标题: 数组的两种排序方式
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("]");

        }
       
}

作者: Amu    时间: 2015-5-23 23:48
写的不错哇,一个小建议,数组元素换位操作可单独写一个方法swap,提高代码复用性
作者: 白水丶    时间: 2015-5-23 23:52
我来赚技术分
作者: 二大爷    时间: 2015-5-24 00:00
有点水啊
作者: 914360849    时间: 2015-5-24 00:34
欢迎多提意见
作者: qian0217wei    时间: 2015-5-24 00:43
写算法是最好加上思想,另外你这水贴也太明显了!如果有什么疑问或者心得体会可以分享,你这完全就是看了视频贴个代码啊!
作者: 张凝宁    时间: 2015-5-24 03:09
欢迎多提意见
作者: 冷雨敲窗被未温    时间: 2015-5-24 08:58
用手把嘴遮住干嘛?水了大家忍不住笑吗?还是欲抱琵琶半遮面?
作者: q617939894    时间: 2015-5-24 11:46
不错不错 继续加油




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2