改進冒泡排序算法

Yangcl 11年前發布 | 4K 次閱讀 ltrace


       冒泡排序(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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!