排序算法-冒泡排序(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("===============");
}
}

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

上一篇:Centos 定时任务发送smtp邮件


下一篇:Onpaint()函数中绘图出现问题:当多次进入onpaint()发现次数达到一定程度就会出现窗口不能再重绘导致窗口内容损坏的现象