日期:2014-05-17  浏览次数:20790 次

编程珠玑中双向快速排序,请教各位达人~(将伪代码转化为C#代码)
11.3中一段伪代码怎样转换为C#代码
 void qsort3(l,u) 
        if (l >= u)
             return
        t = x[1];i = 1;j = u + 1;
        loop
            do i++ while i <= u && array[i] < t
            do j-- while array[j] > t
            if i > j
               break;
            Swap(ref array[i], ref array[j]);
        Swap(ref l, ref j);
        qsort3(l, j - 1);
        qsort3(j + 1, u);

c# 编程 快速排序算法

------解决方案--------------------
void qsort3(int l, int u)
{
         if (l >= u)
              return;
         t = x[1];i = 1;j = u + 1;
         while (true)
         {
             do { i++; } while (i <= u && array[i] < t)
             do { j--; } while (array[j] > t)
             if (i > j)
                break;
             Swap(ref array[i], ref array[j]);
         }
         Swap(ref l, ref j);
         qsort3(l, j - 1);
         qsort3(j + 1, u);
}