package snippet;
public
class fastsort;
system.out.println("排序前");
for(int i = 0; iout.println(a[i]);
}int start = 0;
int end = a.length-1;
sort(a,start,end);
system.out.println("排序後");
for(int i = 0; iout.println(a[i]);}}
public
static
void
sort(int a,int low,int high)
//從前往後比較
while(end>start&&a[start]<=key)//如果沒有比關鍵值大的,比較下乙個,直到有比關鍵值大的交換位置
start++;
if(a[start]>=key)
//此時第一次迴圈比較結束,關鍵值的位置已經確定了。左邊的值都比關鍵值小,右邊的值都比關鍵值大,但是兩邊的順序還有可能是不一樣的,進行下面的遞迴呼叫
}//遞迴
if(start>low) sort(a,low,start-1);//左邊序列。第乙個索引位置到關鍵值索引-1
if(end1,high);//右邊序列。從關鍵值索引+1到最後乙個
}}
資料結構 排序(Code)
二 交換類排序 三 選擇類排序 四 歸併類排序 五 基數排序 閱讀 是件非常枯燥的事,所以盡量每一行都加的注釋,方便閱讀理解。六 排序 一 插入類排序 1 直接插入排序 method 直接插入排序法 param disorder sqc 無序序列 num 無序序列的長度 int insert dir...
氣泡排序和雞尾酒排序 code
昨天回顧了下氣泡排序和雞尾酒排序,用物件導向的方式寫了一下,並且優化了 記錄一下 氣泡排序 class bubblesort object def init self,data list self.data list data list self.length len data list 簡單粗暴的...
遞迴 快速排序 快速排序
問題描述 用遞迴來實現快速排序 quick sort 演算法。快速排序演算法的基本思路是 假設要對乙個陣列a進行排序,且a 0 x。首先對陣列中的元素進行調整,使x放在正確的位置上。同時,所有比x小的數都位於它的左邊,所有比x大的數都位於它的右邊。然後對於左 右兩段區域,遞迴地呼叫快速排序演算法來進...