zoukankan      html  css  js  c++  java
  • 排序之冒泡排序

    (我们这块说升序思想) 排序思想:第一趟,从第一个记录开始到第n个记录,
    对n-1对相邻的两个记录关键字进行比较,若前者大于后者,两者进行交换,这样一趟结束后,
    最大的元素就在数组的末尾;
    第二趟,从第一个记录开始到第n-1个记录,对n-2对相邻的两个记录关键字进行比较,
    若前者大于后者,两者进行交换,
    这样一趟结束,次大元素在数组的倒数第二个位置.....如此进行n-1次排序就能排序出来

    public class bubbleSort {
        public static void main(String[] args) {
            Random r = new Random();
            int[] arr = new int[10000];
            for(int i = 0;i<arr.length;i++) {
                arr[i] = r.nextInt();
            }
            long t1 = System.currentTimeMillis();
            BubbleSort1(arr);
            long t2 = System.currentTimeMillis();
            System.out.println(t2);
            System.out.println(t1);
            System.out.println(t2 - t1);
            long t3 = System.currentTimeMillis();
            BubbleSort2(arr);
            long t4 = System.currentTimeMillis();
            System.out.println(t3);
            System.out.println(t4);
            System.out.println(t4 - t3);
        }
        
        public static void BubbleSort1(int arr[]) {
            for(int i = 1;i<arr.length;i++) {
                for(int j = 0;j<arr.length-i;j++) {
                    if(arr[j]>arr[j+1]) {
                        int temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;
                    }
                }
            }
        }
    //    优化算法:我们加一个条件判断它是否交换,如果没有交换,那么就说明他已经排好序
        public static void BubbleSort2(int arr[]) {
            for(int i = 1;i<arr.length;i++) {
                Boolean b = false;
                for(int j = 0;j<arr.length-i;j++) {
                    if(arr[j]>arr[j+1]) {
                        int temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;
                        b = true;
                    }
                }
                if(b == true) break;
            }
        }
    }
  • 相关阅读:
    InnoDB和MyISAM区别总结
    jquery判断checkbox是否被选中
    手机网站重构经验分享(S60V3篇)
    域名A记录、MX记录、CNAME、TTL
    ubuntu apache2配置详解(含虚拟主机配置方法)
    IP分片攻击
    Linux+Apache+Mysql+PHP典型配置
    apache配置优化测试
    PHP 正则表达式资料
    人人网UGC技术广播站
  • 原文地址:https://www.cnblogs.com/du001011/p/10287051.html
Copyright © 2011-2022 走看看