今天大鵬哥跟大家學習下交換排序中的冒泡排序。
爲什麼叫冒泡排序呢,因爲在這種排序過程中越大的元素會經由交換慢慢”浮”到數列的頂端,故名冒泡排序。冒泡排序就是把小的元素往前調或者把大的元素往後調。
冒泡排序基本操作:
比較相鄰的元素,如果第一個比第二個大,則交換他們兩個。
Java實現如下:
public class BubbleSort {
public static void main(String[] args) {
// TODO Auto-generatedmethod stub
int[] a={49,38,65,97,76,13,27,50};
System.out.print("排序前:");
for(int x:a){
System.out.print(x+",");
}
bubbleSort(a);
System.out.print("排序後:");
for(int x:a){
System.out.print(x+",");
}
}
private static void bubbleSort(int[] a) {
// TODO Auto-generatedmethod stub
int temp;
for(int j=1;j<a.length;j++){
for(int i=0;i<a.length-1;i++){
temp = a[i];
if(a[i+1]<a[i]){
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
}
}
冒泡排序的時間複雜度爲O(n^2)(冒泡排序效率比較低,在數據規模較小時,可以採用,數據規模比較大時,最好用其他排序方法)。