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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 真真姐 中级黑马   /  2012-4-22 16:34  /  2242 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 真真姐 于 2012-10-21 14:30 编辑

两种排序的方法,乍一看是不是都差不多,实际上他们是不一样的,注意看第二个for循环

冒泡排序基本原理大泡在上,小泡在下。也就是依次比较相邻的两个数

public static void paiXu1(int[] arr) {
       for (int i = 0; i < arr.length; 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;
                 }
           }
       }
    }


这一种排序,我们简单分析一下他执行的过程,外层的for循环中的变量也参与的数组的比对,
通俗一点就是,数组的每一个数要跟自己后面的所有的数进行比较! 当然也实现了相应的功能!

    public static void paiXu2(int[] arr) {
       for (int x = 0; x < arr.length; 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;
              }
         }
    }
}




评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

2 个回复

倒序浏览
我的两个排序 请指教:

public class Sort {

        /**
         * @param 排序
         */
        public static void main(String[] args) {
                int[] arr={5,7,1,9,2,6,3,4,8};
                selectedSort(arr);
                p(arr);
                System.out.println();
                bubbleSort(arr);
                p(arr);
        }

        /*
         * 打印的方法。
         */
        private static void p(int[] arr) {
                for(int i=0; i<arr.length; i++){
                        System.out.print(arr[i]+" ");
                }
        }
       
        /*
         * 选择排序
         */
        private static void selectedSort(int[] arr) {
                int temp = 0;
                for(int i=0; i<arr.length; i++){
                        for(int j=i+1; j<arr.length; j++){
                                if(arr[j]<arr[i]){
                                        temp = arr[i];
                                        arr[i] = arr[j];
                                        arr[j] = temp;
                                }
                        }
                }
        }
        /*
         * 冒泡排序
         */
        public static void bubbleSort(int[] arr){
                int temp = 0;
                for(int i=arr.length-1; i>=1; i--){
                        for(int j=0; j<=i-1; j++){
                                if(arr[j]>arr[j+1]){
                                        temp = arr[j];
                                        arr[j] = arr[j+1];
                                        arr[j+1] = temp;
                                }
                        }
                }
        }

}
回复 使用道具 举报
一个冒泡排序,一个选择排序,当然算法不同喽。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马