常用的排序演算法主要包括:
1、插入排序
直接插入排序
希爾排序
2、交換排序
氣泡排序
快速排序
3、選擇排序
簡單選擇排序
堆排序快速排序
4、歸併排序
其中,氣泡排序算是最簡單的一種排序演算法
public class bubble ;
int temp=0;
for(int i=0;iarr[j+1])
}system.out.println("第["+(i+1)+"]輪,排序結果:"+arrays.tostring(arr));
} }}
通過分析我們可以得到氣泡排序的時間複雜度為o(n2),假如現在存在這種情況,存在乙個陣列,現在已經是有序的資料,如果使用氣泡排序同樣需要o(n2)的時間複雜度,這時我們需要對氣泡排序進行優化。
public class bubbleoptimization ;
int temp=0;
int flag=0;
for(int i=0;iarr[j+1])
}//說明上面 內for迴圈中,沒有交換任何元素。
if(flag==0)
system.out.println("第["+(i+1)+"]輪,排序結果:"+arrays.tostring(arr));
} }}
51cto博文遷移
排序演算法 氣泡排序 優化
排序演算法在程式設計中起到非常大的作用,氣泡排序是其中比較經典的演算法。雖然效率不高,但是每個演算法都有適合的場景。氣泡排序就是在排序過程中相鄰元素不斷交換,看起來向元素冒泡一樣。那我們就可以通過新增乙個標誌位來對氣泡排序進行優化處理。因為,在某一次排序的過程中可能需要排序的陣列已經是有序的了,在這...
排序演算法之 氣泡排序優化
氣泡排序優化演算法思想 我們通過在程式定義了乙個bool型別的flag變數,用來判斷往後的迴圈當中,陣列是否已經是有序的,每一輪迴圈都會設定其值為true,當有元素對調位置時,就將flag的值設定為true,表示該陣列還不是有序陣列。每一輪都要判斷flag的值,如果判斷當前一輪操作沒有元素有位置調換...
氣泡排序演算法 氣泡排序的基礎演算法和優化演算法
如有乙個數列有n 5 個元素,則至多需要n 1 4 趟迴圈才能保證數列有序 2.每一趟迴圈都從數列的第乙個元素開始比較,依次比較相鄰的兩個元素,比較到數列的最後 3.如果前乙個元素大於後乙個元素,則使用第三變數交換 原理 基礎演算法的缺點 1.每一趟比較都要比較到陣列的最後,沒有必要,只要比較到無序...