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("==============="); } }
根据冒泡排序算法的定义,简单的实现了一下,仅供参考,若有不对,请指出,谢谢!