Java 冒泡排序與快速排序的實現,java冒泡排序實現

來源:互聯網
上載者:User

Java 冒泡排序與快速排序的實現,java冒泡排序實現

 

冒泡排序     基本特點

      (1)基於交換思想的排序演算法
        (2)從一端開始,逐個比較相鄰的兩個元素,發現倒序即交換。
          (3)一次遍曆,一定能將其中最大(小)的元素交換到其最終位置上

    排序過程類比    

 

    代碼實現
static void Bubble_Sort(int array[]){        for(int i=0;i<array.length;i++)        {            for(int j=0;j<array.length-i-1;j++)            {                if(array[j]<array[j+1])                {                    int temp=array[j];                    array[j]=array[j+1];                    array[j+1]=temp;                }            }            System.out.print("第"+(i+1)+"次排序的結果:");            for(int c=0;c<array.length;c++)            {                System.out.print(array[c]+"\t");            }            System.out.println();        }                    System.out.print("最終排序結果:");        for(int c=0;c<array.length;c++){            System.out.print(array[c]+"\t");        }    }

       

 

快速排序  基本思想

     選定一個元素作為中間元素,然後將表中所有元素與改中間元 素相比較,將表中比中間元素小的元素調到表的前面,將比中間元素大的元素 調到後面,再將中間元素放在

     這兩部分之間以作為分界點,這樣便得到一個劃分。 然後再對左右兩部分分別進行快速排序,直到每個子表僅有一個元素或為空白表為止。

  劃分方法

      1.中間元素的選擇:作為參考點的中間數的選擇沒有特別的規定, 本次預設為第一個元素。

      2.中間元素所佔空間可能被其他元素佔用,為此,可先儲存該元素的值到其他位置以騰出起空間。

      3.這樣,前面便有一個空位置(i),可從最後面開始往前搜尋一個比中間數大的元素,並將其放置到後面的這個位置上。

             4.此刻,後面便有了一個空位置(j),可從前面開始往後搜尋一個比中間數小的元素,並將其放置到前面的位置。4.重複1 2 ,直到兩邊搜尋的空位重合(i=j)。

  排序過程類比

     

 

  代碼實現
static int partition(int array[],int start,int end){        int temp=array[start];        int i=start;        int j=end-1;        while(i!=j){            while(i<j&&array[j]>temp){                j--;            }            if(i<j){                array[i]=array[j];                i++;            }            while(i<j&&array[i]<temp){                i++;            }            if(i<j){                array[j]=array[i];                j--;            }                    }        array[i]=temp;        return i;        }        static void QuickSort(int a[],int s,int e){        if(s<e){            int i=partition(a, s, e );            QuickSort(a, s,i-1);            QuickSort(a, i+1, e);        }            }

 

     

     

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.