• 排序算法-冒泡排序(Bubble Sort)


    package com.wangzhu.sort;
    /**
     * 冒泡排序算法
    * @ClassName: BubbleSort 
    * @Description: TODO
    * @author wangzhu
    * @date 2013-8-12 上午10:37:28 
    *
     */
    public class BubbleSort {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            int[] arr1 = new int[]{10,9,8,7,6,5,4,3,2,1};
            sort(arr1);
            int[] arr2 = new int[]{1,2,3,4,5,6,7,8,9,10};
            sort(arr2);
            int[] arr3 = new int[]{1,1,1,2,2,3,3,3,4,5};
            sort(arr3);
            int[] arr4 = new int[]{2,2,1,3,1,1,1,2,3,3,2};
            sort(arr4);
            int[] arr5 = new int[]{11,-9,-8,17,-6,51,14,31,42,51};
            sort(arr5);
            int[] arr6 = new int[]{-1,-2,-3,-4,-5,-6,-7,-8,-9,-10};
            sort(arr6);
            int[] arr7 = new int[]{-1,-1,-1,-2,-2,-3,-3,-3,-4,-5};
            sort(arr7);
            int[] arr8 = new int[]{2,2,1,2,3,4,5,6,8,9,10,10,10};
            sort(arr8);
            
        }
    
        /**
         * 冒泡排序:每次将最小的放在最前头
         * @param arr
         */
        public static void sort(int[] arr){
            for(int i = 0 ,len = arr.length; i < len;i ++){
                boolean isSort = true;//记录每一趟是否进行了交换,若是没有,则说明数列已排好序
                //从最后面的元素开始进行,直到最前面的第二个未排序的元素
                for(int j = len - 1;j  > i; j--){
                    //前面元素的大于后面的元素,则交换
                    if(arr[j - 1] > arr[j]){
                        int temp = arr[j - 1];
                        arr[j - 1] = arr[j];
                        arr[j] = temp;
                        isSort = false;
                    }
                }
                if(isSort){
                    break;
                }
            }
            show(arr);
        }
    
        private static void show(int[] arr) {
            for(int num:arr){
                System.out.print(" " + num);
            }
            System.out.println("===============");
        }
    }

    根据冒泡排序算法的定义,简单的实现了一下,仅供参考,若有不对,请指出,谢谢!

  • 相关阅读:
    Ubuntu解压缩命令
    小语种优化策略
    外贸seo常用Zen Cart数据库mysql批量执行命令
    ASP Request.ServerVariables
    centos linux 下 crontab e 命令插入及保存
    AJAX 传值给后台
    partial class
    Jquery 实现弹出层
    abstract class
    SQL锁表
  • 原文地址:https://www.cnblogs.com/xiaoxian1369/p/3252440.html
Copyright © 2020-2023  润新知