我正在读这本书。在第40页,我很难理解以下内容:
"Generalizing, suppose A = (0, 1, 2, 0, 2, 1, 1), and the pivot index is 3. Then A[3] = 0, so i) (0, 0, 1, 2, 2, 1, 1) is a valid partitioning. For the same array, if the pivot index is 2, then A[2] = 2, so the arrays ii) (0,1,0,1,1,2,2) as well as iii) (0,0,1,1,1,2,2) are valid partitionings."
要求是将数组A和索引i放入A中,并重新排列元素,使小于A[i](枢轴)的所有元素首先出现,然后是等于枢轴的元素,然后是大于枢轴的元素
我的问题是:
为什么i)(0,0,1,2,2,1,1)是有效的分区?我不明白为什么A[4]和A[5]都是1并且小于新的A[3],即2,这是可以接受的。这个定义是不是“小于,在它的左边;等于,然后大于”
对于ii)(0,1,0,1,1,2,2),为什么[2]从2变为0?A[2]在原来的A中,它的左元素不是已经少了吗
谢谢
目前没有回答
相关问题 更多 >
编程相关推荐