基本的な考え方:n個の整数のピボット分割プロセスに基づいてモデル化し、高速配列決定法。
iは= N / 2、次いで、パケットが完了すると、アルゴリズムを終了します
iがn / 2 <場合、フロントピボット要素iは、要素を分割した後に続けて、A1属し
I> N / 2の場合は、次の要素が私の前に要素分割続ける、A2を回動に属し
([]、int型N INT)のint set_partition { int型pivotkey、低= 0、LOW0 = 0、ハイ= N-1、high0 = N-1、フラグ= 1、K = N / 2、I。 int型S1 = 0、S2 = 0; 一方、(フラグ)//选择枢轴 { pivotkey = [0]。 一方(低<高) { 一方(低<高&& [高]> = pivotkey) -高いです。 IF(!ロー=高)[低]は[高] =。 ++低い(低<高&& <= pivotkey [低])一方、 IF(!ロー=高)[高]は[低] =。 } [低] = pivotkey。 IF(低==のK-1)// N / 2小元素如果枢轴是、则划分成功 フラグ= 0。 他{ (低<K-1)であれば { LOW0 = ++低いです。 高い= high0。 } 他{ high0 = -高いです。 低= LOW0。 } } } のために(i = 0; I <K; iは++)、S1 + = A [i]は、 S2 + = A [i]は、(; I <K iが++ I = 0)のための S2-S1を返します。 }