Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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/8/sorting/2.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 7-1霍尔分区正确性证明_Algorithm_Sorting_Quicksort - Fatal编程技术网

Algorithm 7-1霍尔分区正确性证明

Algorithm 7-1霍尔分区正确性证明,algorithm,sorting,quicksort,Algorithm,Sorting,Quicksort,我试图从CLRS(算法简介)中解决一些问题,但我遇到了问题7-1。b部分(目前)内容如下: 指数i和j是这样的,我们永远不会访问 在子阵A[p…r]之外 我该如何证明这一点?我可以看到指数向中间移动,但是。。。这真让我绞尽脑汁。解释它并不是证据。如果有人能解释一下这个问题,我将不胜感激。我相信您指的是以下分区算法: PARTITION(A,p,r) x = A[p] i = p-1 j = r+1 while TRUE do repeat j=j-1 u

我试图从CLRS(算法简介)中解决一些问题,但我遇到了问题7-1。b部分(目前)内容如下:

指数i和j是这样的,我们永远不会访问 在子阵A[p…r]之外


我该如何证明这一点?我可以看到指数向中间移动,但是。。。这真让我绞尽脑汁。解释它并不是证据。如果有人能解释一下这个问题,我将不胜感激。

我相信您指的是以下分区算法:

PARTITION(A,p,r)
  x = A[p]
  i = p-1
  j = r+1
  while TRUE
    do repeat j=j-1
         until A[j]<=x
       repeat i=i+1
         until A[i]>=x
       if i<j
         then exchange A[i] and A[j]
         else return j
分区(A、p、r)
x=A[p]
i=p-1
j=r+1
虽然是真的
重复j=j-1
直到A[j]=x

如果我我相信您指的是以下分区算法:

PARTITION(A,p,r)
  x = A[p]
  i = p-1
  j = r+1
  while TRUE
    do repeat j=j-1
         until A[j]<=x
       repeat i=i+1
         until A[i]>=x
       if i<j
         then exchange A[i] and A[j]
         else return j
分区(A、p、r)
x=A[p]
i=p-1
j=r+1
虽然是真的
重复j=j-1
直到A[j]=x

如果我认为您需要包括算法,或者至少是霍尔分区的描述。这可能更适合在cs.stackexchange.com上使用。@Dukeling我可能应该这样做。但我认为没有这本书就没有人能解决这个问题。@templatetypedef是的,谢谢,我不知道它的存在。我个人认为,如果对问题有足够的描述,找到没有这本书的人解决这个问题的可能性更大,或者所述人员已经熟悉该信息或在其他地方发现该信息。或者说某人可能有这本书,但它不在附近。我认为你需要包括算法,或者至少是霍尔分区的描述。这可能更适合在cs.stackexchange.com上使用。@Dukeling我可能应该这样做。但我认为没有这本书就没有人能解决这个问题。@templatetypedef是的,谢谢,我不知道它的存在。我个人认为,如果对问题有足够的描述,找到没有这本书的人解决这个问题的可能性更大,或者所述人员已经熟悉该信息或在其他地方发现该信息。或者说某人可能有这本书,但它不是很近。使用循环不变量似乎是它的关键,谢谢使用循环不变量似乎是它的关键,谢谢