Java八大排序演算法之一快速排序

2021-08-23 12:34:30 字數 727 閱讀 8233

選擇乙個基準元素,通常選擇第乙個元素或者最後乙個元素,通過一趟掃瞄,將排序列分成兩部分,一部分比基準元素小,一部分大於基準元素,此時基準元素在其排好序後的正確位置,然後再用同樣的方法遞迴地排序劃分的兩部分。

//快速排序

public

class fastsort ;

int start = 0;

int end = a.length-1;

sort(a,start,end);

for(int i = 0; iout.println(a[i]);}}

public

static

void

sort(int a,int left,int right)

//從前往後比較

while(end>start&&a[start]<=key)//如果沒有比關鍵值大的,比較下乙個,直到有比關鍵值大的交換位置

start++;

if(a[start]>=key)

//此時第一次迴圈比較結束,關鍵值的位置已經確定了。左邊的值都比關鍵值小,右邊的值都比關鍵值大,但是兩邊的順序還有可能是不一樣的,進行下面的遞迴呼叫

}//遞迴

if(start>left) sort(a,left,start-1);//左邊序列。第乙個索引位置到關鍵值索引-1

if(end1,right);//右邊序列。從關鍵值索引+1到最後乙個

}}

Java八大排序演算法之一希爾排序

演算法先將要排序的一組數按某個增量d n 2,n為要排序數的個數 分成若干組,每組中記錄的下標相差d.對每組中全部元素進行直接插入排序,然後再用乙個較小的增量 d 2 對它進行分組,在每組中再進行直接插入排序。當增量減到1時,進行直接插入排序後,排序完成。希爾排序 最小增量排序 public cla...

八大排序演算法java

本文只介紹演算法實現的 預設都這一已經理解演算法思想,若不理解可以參考八大排序演算法思想 交換兩個數 public static void swap int arr,int i,int j 氣泡排序 public static void bubblesort int arr for int i 0 ...

java八大排序演算法

學習左程雲演算法課初級班 1,歸併排序,這是分治的思想,例如有乙個陣列,先將左半部分排好序,再將右半部分排好序,最後再將兩邊的數通過乙個輔助陣列將它們逐個放到輔助陣列裡面,這個過程中逐漸比較兩邊頭位置的數的大小。求乙個陣列的中間位置,可以int mid l r l 1 右移運算 位運算 速度快一些。...