Methods 分割法

Methods 分割法,methods,data-partitioning,Methods,Data Partitioning,我正试图确切地理解这个方法的作用,它说它是假设的 “继续交换最外层位置错误的对”。我把这个放进了一个程序 尝试了不同的数组,但结果对我来说毫无意义,这到底是做什么的 partition(A, p) A: array of size n, p: integer s.t. 0 <= p < n 1. swap(A[0],A[p]) 2. i <- 1, j <- n − 1 3. while i < j do 4. while A[i] <

我正试图确切地理解这个方法的作用,它说它是假设的 “继续交换最外层位置错误的对”。我把这个放进了一个程序 尝试了不同的数组,但结果对我来说毫无意义,这到底是做什么的

partition(A, p)  
A: array of size n, p: integer s.t. 0 <= p < n

 1. swap(A[0],A[p])

 2. i <- 1, j <- n − 1

 3. while i < j do

 4.   while A[i] <= A[0] and i < n do

 5.     i <- i + 1

 6.   while A[j] > A[0] and j > 0 do

 7.     j <- j − 1

 8.   if i < j then

 9.     swap(A[i], A[j])

10. swap(A[0], A[j])

11. return j
分区(A,p)
A:大小为n的数组,p:整数s.t.0此伪代码实现的算法是的分区阶段。它将排列数组,以便所有小于或等于
A[p]
的值位于左侧,所有较大的值位于右侧。它返回索引
j
,这是左侧的最后一个索引,
A[j]
等于
A[p]


如果您不熟悉快速排序,那么我们的目的是使用此分区算法将数组拆分为“小”和“大”部分,并递归地对每个部分进行排序。由于数组中的小数组被安排在大数组之前,因此数组将被排序。如果正确选择
p
,使
A[p]
接近
A
中的中间值,这是一种非常快速的排序方法。

首先,它不会编译。ShellScript初学者:你确定它是用Java编写的吗?它肯定不是Java代码。