改進冒泡排序算法
冒泡排序(Bubble sort)是基于交換排序的一種算法。它是依次兩兩比較待排序元素,若為逆序(遞增或遞減)則進行交換。將待排序元素從左至右比較一遍稱為一趟"冒泡"。每趟冒泡都將待排序列中的最大關鍵字交換到最后(或最前)位置。直到全部元素有序為止。若本次冒泡處理過程中,沒有進行交換,說明序列已有序,則停止交換。這就是改進的冒泡算法的處理思想 。
public class BubbleSort
{
public void bubble(int [] a)
{
int i , j , t;
int flag = 0;//標記是否發生交換
int n = a.length;
for( i =0 ; i < n-1 ; i++)
{
for(j = n -1; j>i ; j--)
{
if(a[j-1]>a[j])
{
t = a[j-1];
a[j-1] = a[j];
a[j] = t ;
flag = 1;
}
}
System.out.print("第" + (i+1)+"遍: ");
for(j = 0 ; j < n ; j ++)
{
System.out.print(a[j]);
}
System.out.print("\n");
if(flag == 0)
break;
else
flag = 0;
}
}
public static void main(String[] args)
{
int [] b = {9,5,7,4,2,1,3};
BubbleSort bs = new BubbleSort();
bs.bubble(b);
}
}</pre>輸出:
</span>
本文由用戶 Yangcl 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!