Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 了解荷兰国旗计划 我在阅读,但是不理解C++代码实现中的低级>代码>和代码>高> /代码>参数在三分区> /Cuff>函数中。p>_Algorithm_Partitioning - Fatal编程技术网

Algorithm 了解荷兰国旗计划 我在阅读,但是不理解C++代码实现中的低级>代码>和代码>高> /代码>参数在三分区> /Cuff>函数中。p>

Algorithm 了解荷兰国旗计划 我在阅读,但是不理解C++代码实现中的低级>代码>和代码>高> /代码>参数在三分区> /Cuff>函数中。p>,algorithm,partitioning,Algorithm,Partitioning,如果我假设它们是要排序的数组的最小和最大元素,那么If和else If语句没有任何意义,因为(data[I]high)总是返回零 我错在哪里 }否则,如果(数据[i]>=high){显示您认为看到的可能不是文章中所写的。将低和高视为半开放范围中间分区中的值小于Lo> 在左分区中结束。中间分区将包含从“代码>低高< /代码>的值。最后,大于或等于高< /代码>的所有值在正确的分区中结束。 < P> 低< /代码>>和high是您为执行三向分区定义的值,即,要执行三向分区,您只需要两个值: [bot

如果我假设它们是要排序的数组的最小和最大元素,那么
If
else If
语句没有任何意义,因为
(data[I]
(data[I]>high)
总是返回零


我错在哪里

}否则,如果(数据[i]>=high){
显示您认为看到的可能不是文章中所写的。

视为半开放范围
中间分区中的值小于Lo> 在左分区中结束。中间分区将包含从“代码>低高< /代码>的值。最后,大于或等于<代码>高< /代码>的所有值在正确的分区中结束。

< P> <代码>低< /代码>>和
high
是您为执行三向分区定义的值,即,要执行三向分区,您只需要两个值:

[bottom] <= low  < [middle] < high <= [top]

正如算法所说,您:

  • 交换底部上方的元素(即
    p+1
    ),因为底部下方的所有内容都已检查,或者
  • 交换顶部下方的元素(即
    q-1
    ),因为顶部上方的所有内容都已检查,或者
  • 将元素留在原处,因为它属于中间元素

你可以将
[3,1,0,2]
[6,4]
[9,8,9]
分别作为底部、中间和顶部分区。

感谢你的清晰解释。对于这一点(2,1,0,0,1,2,1,0,2),什么应该是低和高的?@abhi120:low=1和hi=2就可以了。我认为亚历山大的不等式应该是
[bottom]data = [ 3, 1, 4, 9, 8, 2, 6, 9, 0 ]
low  = 4
high = 8
   [ 3 , 1 , 4 , 9 , 8 , 2 , 6 , 9 , 0 ]
p^  i^                                  q^
   [ 3 , 1 , 4 , 9 , 8 , 2 , 6 , 9 , 0 ]
    p^  i^                              q^
   [ 3 , 1 , 4 , 9 , 8 , 2 , 6 , 9 , 0 ]
        p^  i^                          q^
   [ 3 , 1 , 4 , 9 , 8 , 2 , 6 , 9 , 0 ]
        p^      i^                      q^
   [ 3 , 1 , 4 , 0 , 8 , 2 , 6 , 9 , 9 ]
        p^      i^                  q^
   [ 3 , 1 , 0 , 4 , 8 , 2 , 6 , 9 , 9 ]
            p^      i^              q^
   [ 3 , 1 , 0 , 4 , 9 , 2 , 6 , 8 , 9 ]
            p^      i^          q^
   [ 3 , 1 , 0 , 4 , 6 , 2 , 9 , 8 , 9 ]
            p^      i^      q^
   [ 3 , 1 , 0 , 4 , 6 , 2 , 9 , 8 , 9 ]
            p^          i^  q^
   [ 3 , 1 , 0 , 2 , 6 , 4 , 9 , 8 , 9 ]
                p^         iq^