快速排序是根據待排序陣列中的某一值val,將待排序陣列分割成兩部分資料,前一部分陣列比val小
,後一部分陣列比val大,之後對每部分資料重複上述過程,最終實現待排序陣列的有序性,例項如下:
public class quicksortmain/*** 切分待排序陣列
*@param
arr*
@param
low*
@param
high
*@return
*/static int
split(int arr, int low, int high)
arr[low] = key;
return low;
} /**
* 遞迴切分資料
*@param
arr*
@param
low*
@param
high
*/static void
sort(int arr, int low, int high)
}static void
sort(int arr)
static void
sort() ;
sort(arr);
system.out
.println(arrays.tostring(arr));
}}
快速排序例項
include stdafx.h include define cutoff 3 int array void insert sort int array,int size array j temp print array array,size void print array int array,...
快速排序例項
void sort int a,int left,int right int i left int j right int key a left while i a i a j 找到乙個這樣的數後就把它賦給前面的被拿走的我的值 如果第一次迴圈且鍵是 乙個 左 那麼就是給金鑰 while i a i ...
快速排序演算法例項
對關鍵碼序列 66,13,51,76,81,26,57,69,23 進行快速排序。求第一趟劃分後的結果。關鍵碼序列遞增。以第乙個元素為劃分基準。將兩個指標i,j分別指向表的起始和最後的位置。反覆操作以下兩步 1 j逐漸減小,並逐次比較j指向的元素和目標元素的大小,若p j 2 i逐漸增大,並逐次比較...