/*功能:用Java语言实现冒泡排序
*冒泡排序是稳定的。算法时间复杂度是O(n ^2)
*注:此为优化后的Java冒泡排序代码
*/
public class BubbleSort2 {
public void sort(int[] data){ //定义两个参数,数组首地址与数组大小
int temp;
for(int i=0;i<data.length;i++){ //冒泡,降序:
for(int j=data.length-1;j>i;j--){
if(data[i]<data[j]){ //每个数都比较n次,如果data[i]>data[j]成立,则交换两个数
temp =data[i];
data[i] = data[j];
data[j] = temp;
}
/*以下是打印每一次排序后的序列,与算法无关*/
for(int q=0;q<data.length;q++){
System.out.print(data[q]+" "); //打印每一次排序后的序列
}
System.out.println(); //换行
}
}
}
public static void main(String[] args){
BubbleSort2 bubbleSort2=new BubbleSort2();
int[] a={4,2,3};
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
System.out.println(" 降序排序");
bubbleSort2.sort(a);
System.out.println(" after sort:");
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
} |