冒泡排序是两两比较相邻记录关键字,如果反序则交换。很奇怪,总有人写错,比如我寝室的zdc,曾几何时,他还很得意地和我说写出了冒泡~~
package my_algorithm;
public class MyBubbleSort {
public static void swap(int[] a,int i, int j)
{
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
public void bubbleSort(int[] a)
{
for(int i = 1;i < a.length; i ++)
for(int j = a.length-2;j >= i; j --)
{
if(a[j] > a[j+1])
swap(a,j,j+1);
}
}
// a[]的第一位a[0]用来存储些其他额外信息
public static void main(String[] args)
{
int[] a = new int[]{6,4,6,2,7,12,3};
MyBubbleSort mbs = new MyBubbleSort();
mbs.bubbleSort(a);
for(int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");
}
}
至此完毕~~
原文:http://my.oschina.net/DanielLee/blog/304257