import org.junit.Test;
import java.util.Arrays;
/**
* Created by wc on 2018/4/28.
*/
public class 快速排序 {
@Test
public void test(){
int[] array={31,21,59,68,12,40};
sort(array,0,array.length-1);
System.out.print(Arrays.toString(array));
}
/**
* 數(shù)據(jù)量大用快排
* 必需是數(shù)組,鏈?zhǔn)浇Y(jié)構(gòu)不要使用快排
* 重復(fù)元素多,影響性能
* @param array
* @param start
* @param end
*/
public void sort(int[] array,int start,int end){
//如果起始大于結(jié)尾就返回
if(end-start<=0) return ;
int x=array[start];
int low=start;
int high=end;
boolean direction=true;
L:
while(low<high){
//從右往左
if(direction){
for(int i=high;i>low;i--){
if(array[i]<=x){
array[low++]=array[i];
high=i;
//換方向
direction=!direction;
continue L;
}
}
high=low;
}else{
for(int i=low;i<high;i++){
if(array[i]>=x){
array[high--]=array[i];
low=i;
direction=!direction;
continue L;
}
}
low=high;
}
}
array[low]=x;
sort(array,start,low-1);
sort(array,low+1,end);
}
}
快速排序
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 選擇排序 對(duì)于任何輸入,時(shí)間為O(n*n); 冒泡排序 最優(yōu)(對(duì)于升序的數(shù)組,因?yàn)榧尤肓艘粋€(gè)跳出判斷):O(n),...
- 歡迎探討,如有錯(cuò)誤敬請(qǐng)指正 如需轉(zhuǎn)載,請(qǐng)注明出處http://www.cnblogs.com/nullzx/ 1....
- 給定數(shù)組 int[] arr = {3,6,8,4,7,5,9,1,2,0};使用至少三種方法對(duì)數(shù)組arr排序(作...
- 用Objective-C實(shí)現(xiàn)幾種基本的排序算法,并把排序的過(guò)程圖形化顯示。其實(shí)算法還是挺有趣的 ^ ^. 選擇排序...
- 有一天,我開(kāi)車(chē)載老婆去上班,路上我扭頭問(wèn)她: 你知道為什么老司機(jī)愛(ài)罵人嗎? 她一臉茫然的看了看我,然后好奇的問(wèn)我為...