public void Sort2(int lo0, int hi0)
  {
    if (lo0 >= hi0)
      return;
    cVertex mid = new cVertex();
    mid = GetElement(hi0);
    
    int lo = lo0;
    int hi = hi0-1;
    
    while (lo <= hi) 
    {
      while (lo<=hi && (Compare2(GetElement(lo), mid) != -1))
	lo++;
    
      while (lo<=hi && (Compare2(GetElement(hi), mid)!=1))
	hi--;
      
      if (lo < hi)
	Swap(GetElement(lo),GetElement(hi));
    }
    Swap(GetElement(lo),GetElement(hi0));
  
    Sort2( lo0, lo-1);
    Sort2( lo+1, hi0);
  }