|
// Quick Sort
(*
从数列中挑出一个元素,称为 "基准"(pivot);
重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面;
递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。
*)
IF #Low < #High THEN
#PivotPos := "Partition"(asc:=#Asc_Des, low := #Low, high := #High, ARR := #Sort_Arr);
"74_快速排序算法"(Asc_Des:=#Asc_Des, // 递归调用
Low := #Low,
High := #PivotPos - 1,
Sort_Arr := #Sort_Arr);
"74_快速排序算法"(Asc_Des:=#Asc_Des,
Low := #PivotPos + 1,
High := #High,
Sort_Arr := #Sort_Arr);
END_IF;
|
|