基本的冒泡排序,以及改进的算法。
对于改进算法而言,有2种方案:一种是设置一个标志位,当一趟排序没有交换元素的时候,则拍序结束。另一种,是标记交换的下标,当标记的下标为0时,则冒泡结束。
package com.xpn.sort;
public class BubbleSort {
/**
* @param args
*/
public static void main(String[] args) {
int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};
bubbuleSort(a);
for (int i : a) {
System.out.print(i+" ");
}
}
public static void bubbuleSort(int[] a){
int len=a.length;
for(int i=0;i<len-1;i++){//len-1趟
for(int j=0;j<len-i-1;j++){//每一趟只对前len-i-1个数进行下沉,后边的已经是最大的了。
if(a[j]>a[j+1]){
swap(a,j+1,j);
}
}
}
}
public static void swap(int[] a,int i,int j) {
int tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}