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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class Dem {
        public static void main(String[] args) {
                int[] arr = {6,5,4,3,2,1};
                prinArray(arr);                                                    //排序前
                bubbleSort(arr);                                                // 冒泡排序
                 prinArray(arr);                                                 //排序后
                System.out.println("----------------");             //换行
                 prinArray(arr);                                                //排序前
                selectSort(arr);                                               //选择排序
                prinArray(arr);                                                //排序后
               
        }
        //冒泡排序
        public static void bubbleSort(int[] arr){
                for (int i = 0; i < arr.length-1; i++) {
                        for (int j = 0; j <arr.length-i-1; j++) {
                                if(arr[j]>arr[j+1])
                                {
                                        int temp = arr[j];
                                        arr[j] =arr[j+1];
                                        arr[j+1] = temp;
                                }
                        }
                }
               
        }
        //选择排序
        public static void selectSort(int[] arr){
                for (int i = 0; i < arr.length; i++) {
                        for (int j = i+1; j < arr.length; j++) {
                                if(arr[i]>arr[j])
                                {
                                        int temp = arr[i];
                                        arr[i] =arr[j];
                                        arr[j] = temp;
                                }
                        }
                       
                }
        }
           //遍历数组
        public static void prinArray(int[] arr){         
                for (int i = 0; i < arr.length; i++) {
                        System.out.print(arr[i]+" ");
                }
        }
}


26 个回复

倒序浏览
本帖最后由 Hi.。 于 2015-12-22 11:00 编辑

选择排序的 排完倒数第二个,最后 一个就自动出来不用再排了
所以可以 for (int i = 0; i < arr.length-1 ; i++)for (int j = 0; j < arr.length -1 ; j++)
回复 使用道具 举报
那我就在你这里练习一遍,{:3_46:}
class Demo
{
        public static void main(String[] args)
        {
                int[] arr = {23,21,56,12,4,7};
               
                printArray(arr);
                selectSort(arr);
                printArray(arr);
                System.out.println(".........");

                bubbleSort(arr);
                printArray(arr);
        }

        //选择排序
        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])
                                {
                                        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++)
                        {
                                if(arr[y]>arr[y+1])
                                {
                                        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 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]+"]");
                       
                }
        }
}
回复 使用道具 举报
song881224 来自手机 中级黑马 2015-12-22 12:11:30
板凳
谢谢分享,顶一个
回复 使用道具 举报
  这个一定要会的最好能用手写出来
回复 使用道具 举报
谁说必考了 = = 你别闹
回复 使用道具 举报
必考????面试必考吗?
回复 使用道具 举报
chengz 中级黑马 2015-12-23 20:15:55
8#
哪里必考?
回复 使用道具 举报
lixy 中级黑马 2015-12-23 21:47:05
9#
不是必考吧,不过几率挺大
回复 使用道具 举报
anuo 中级黑马 2015-12-23 22:33:25
10#
只要把思想理解了,其实代码还是挺好实现的
回复 使用道具 举报
这个还是要要求手写呢
回复 使用道具 举报
最好能手写出来,点招考的几率很大
回复 使用道具 举报
还有io流的是每次都必考的,今天那个老师都说了,把io流多复习
回复 使用道具 举报
icm 中级黑马 2015-12-23 23:03:22
14#
这种排序挺锻炼个人逻辑的。。
回复 使用道具 举报
恩恩,最经典的两种排序方法
回复 使用道具 举报
四夕 中级黑马 2015-12-24 00:57:24
16#
学习了......
回复 使用道具 举报
我来学习学习~
回复 使用道具 举报
云鱼 中级黑马 2015-12-24 20:24:57
18#
今天弄了半天才弄出来,考试要手写
回复 使用道具 举报
感觉不会考那么简单啊
回复 使用道具 举报
云鱼 发表于 2015-12-24 20:24
今天弄了半天才弄出来,考试要手写

嘿嘿,这个必须要熟练哦,先分析清楚流程,然后在写 就简单了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马