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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 毛豆豆 中级黑马   /  2015-8-11 11:00  /  570 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

还有其他更快的排序方法,但是有点难理解。
这两种是初学者最好理解的,刚刚敲了一遍 分享给大家。

/*定义一个方法,对数组进行排序,先来简单的 选择和冒泡
  选择:
  用第一个数和其他的数比较,如果第一个数比其他数大,那么和第一个数交换位置,
  否则,不交换,之后,继续用第一个数和之后的数比较,以此类推之后,会把最小的
  数放到第一位,之后再拿第2个数比较,以此类推。

  冒泡:
  第一个数和第二个数比较,如果第一个数大于第二个数,则交换位置,否则,不交换,
  继续拿第2个数和第3个数比较,以此类推,会把最大的数放到最后。之后,最后的的数
  就不用参与运算,以此类推。
*/
class Test2
{
        public static void main(String[] args)
        {
                System.out.println("Hello World!");
                int[] arr = {2,1,4,7,3,5,8};
               
                xzpx(arr);
                printArray(arr);
                System.out.println("---------------------");
                mppx(arr);
                printArray(arr);
        }

        public static void xzpx(int[] arr){
                for(int a = 0;a < arr.length-1; a++){
                        for(int b = a+1;b< arr.length;b++){
                                if(arr[a]>arr[b]){
                                        int temp = arr[a];
                                        arr[a] = arr[b];
                                        arr[b] = temp;
                                }
                        }
                }
        }
        public static void mppx(int[] arr){
                for(int a = 0;a < arr.length-1;a++){
                        if(arr[a]>arr[a+1]){
                                int temp = arr[a];
                                arr[a] = arr[a+1];
                                arr[a+1] = temp;       
                        }
                }
        }
        public static void printArray(int[] arr){
                System.out.print("[ ");
                for(int a = 0;a < arr.length;a++){
                        System.out.print(arr[a]+" ");
                }
                        System.out.println("]");
        }
}


4 个回复

倒序浏览
话说,楼主你的那个冒泡排序是不是少了点啥?
回复 使用道具 举报
失误失误
冒泡排序错了。。

以下是改过来的冒泡

public static void mppx(int[] arr){
                for(int a = 0; a<arr.length;a++){
                        for(int b= 0;b<arr.length-1-a;b++){
                                if(arr[b]>arr[b+1]){
                                        int temp = arr[b];
                                        arr[b] = arr[b+1];
                                        arr[b+1] = temp;       
                                }
                        }
                }
        }
回复 使用道具 举报
应该说什么
回复 使用道具 举报
这些对于小数据还好用- -多一点的数据还是用快排省资源。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马