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

    package com.dai.sort;
    import java.text.SimpleDateFormat;
    import java.util.Arrays;
    import java.util.Date;
    
    public class BubbleSort {
        public static void main(String[] args) {
            /*int[] arr = {3, 9, -1, 10, -2,30};
            
            //第一趟排序,将最大的数排在最后面
            int temp = 0;
            boolean flag = false;
            for(int i=0;i<arr.length-1;i++) {
                for(int j=0; j<arr.length-1-i;j++) {
                    if(arr[j]>arr[j+1]) {
                        temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;
                        flag = true;
                    }
                }
                System.out.println("第"+(i+1) +"次排序后的数组:");
                System.out.println(Arrays.toString(arr));
                if(!flag) {
                    break;
                }
                flag = false;
            }
            //测试冒泡排序方法
            System.out.println("排序前:");
            System.out.println(Arrays.toString(arr));*/
            //测试冒泡排序的速度,8w个数据
            int[] arr = new int[80000]; 
            for(int i=0; i<80000; i++) {
                arr[i] = (int)(Math.random()*8000000);
            }
            Date date1 = new Date();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String date1String = simpleDateFormat.format(date1);
            System.out.println("排序前的时间为:" + date1String);
            bubbleSort(arr);
            Date date2 = new Date();
            String date2String = simpleDateFormat.format(date2);
            System.out.println("排序后的时间为:" + date2String);
            //System.out.println("排序后:");
            //System.out.println(Arrays.toString(arr));
        }
    
        //将前面的冒泡排序封装成方法
        public static void bubbleSort(int[] arr) {
            int temp = 0;
            boolean flag = false;
            for(int i=0;i<arr.length-1;i++) {
                for(int j=0; j<arr.length-1-i;j++) {
                    if(arr[j]>arr[j+1]) {
                        temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;
                        flag = true;
                    }
                }
                if(!flag) {
                    break;
                }
                flag = false;
            }
        }
    }
    //冒泡排序,时间复杂度O(n^2)
  • 相关阅读:
    即将到来的Android N,将具备这些新特性
    刚挣钱的程序猿同学该怎样花钱?
    Swift函数
    MVC
    css3硬件加速
    node+mongoDB+express项目需求解释
    柯里化
    web安全
    缓存机制详解
    nodejs --- crypto实现加密(转)
  • 原文地址:https://www.cnblogs.com/shengtudai/p/14386677.html
Copyright © 2011-2022 走看看