java數(shù)據(jù)結(jié)構(gòu)之快速排序

快速排序(Quicksort)是對冒泡排序的一種改進(jìn)。

快速排序由 C. A. R. Hoare 在 1962 年提出。它的基本思想是:通過一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,然后再按此方法對這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序,整個(gè)排序過程可以遞歸進(jìn)行,以此達(dá)到整個(gè)數(shù)據(jù)變成有序序列。

java代碼如下:

package 數(shù)據(jù)結(jié)構(gòu);

public class kuaisupaixu {

? ? public static int quicksort(long arr[],int left,int right,long center){//一開始用最右邊的數(shù)據(jù)作為中間值

? ? int leftenum=left-1;

? ? int rightenum=right;

? ? while(true){

? ? while(leftenum<rightenum&&arr[++leftenum]<center);

? ? while(rightenum>leftenum&&arr[--rightenum]>center);

? ? if(leftenum>=rightenum){

? ? break;

? ? }

? ? else{//如果此時(shí)左邊下標(biāo)沒有大于右邊,則互相交換數(shù)據(jù)即可

? ? long change;

? ? change=arr[leftenum];

? ? arr[leftenum]=arr[rightenum];

? ? arr[rightenum]=change;

? ? }

? ? }

? ? long change1;//循環(huán)結(jié)束的位置與中間值數(shù)據(jù)交換

? ? change1=arr[right];

? ? arr[right]=arr[leftenum];

? ? arr[leftenum]=change1;

? ? return leftenum;//得到的位置作為下一次排序的中間值

? ? }

? ? public static void display(long arr[]){//打印數(shù)據(jù)

? ? for(int i=0;i<arr.length;i++){

? ? System.out.print(arr[i]+" ");


? ? }

? ? System.out.println("\n");

? ? }

? ? public static void sort(long arr[],int left,int right){//遞歸進(jìn)行排序

? ? if(right-left<=0){

? ? return;

? ? }

? ? else{

? ? long point=arr[right];//設(shè)置關(guān)鍵字

? ? int rr=quicksort(arr,left,right,point);

? ? sort(arr,left,rr-1);//對左邊快速排序

? ? sort(arr,rr+1,right);//對右邊快速排序

? ? }

? ? }

}

測試:

package 數(shù)據(jù)結(jié)構(gòu);

public class Testkuaisupaixu {

public static void main(String args[]){

long arr[]=new long[10];

for(int i=0;i<10;i++){

arr[i]=(long)(Math.random()*99);

}

kuaisupaixu.display(arr);

kuaisupaixu.sort(arr, 0, arr.length-1);

kuaisupaixu.display(arr);

}

}

最后輸出結(jié)果如下:


好啦,這次就到這里啦,有問題可以和我留言哦!

郵箱:2321591758@qq.com

其他博客的鏈接:

Github個(gè)人網(wǎng)站?知乎?簡書

歡迎各位訪問哦,這次就到這里啦!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容