今天在看快速排序算法时,看到一个例子: while (true)
                {
                    while (numbers[++i] < middle && i < right);
                    while (numbers[--j] > middle && j > 0) ;
                    if (i >= j) break; 
                    Swap(numbers, i, j);
                }
请问下面二个while 是怎么意思??

解决方案 »

  1.   

    本帖最后由 caozhy 于 2011-08-02 16:23:28 编辑
      

  2.   

    从j开始向前搜索,即由后开始向前搜索(j=j-1),找到第一个小于key的值numbers[j],并与numbers[i]交换;
      

  3.   

    while (true)
           {
                  while (numbers[++i] < middle && i < right);
                        {while (numbers[--j] > middle && j > 0) ;
                              if (i >= j) break; 
                               Swap(numbers, i, j);
                        }
            }