Microsoft.JScript.QuickSort.SortArray C# (CSharp) Méthode

SortArray() private méthode

private SortArray ( int left, int right ) : void
left int
right int
Résultat void
      internal void SortArray(int left, int right){
        ArrayObject array = (ArrayObject)this.obj;
        Object x, y;
        if (right > left){
          int piv = left + (int)((right - left)*MathObject.random());
          x = array.denseArray[piv];
          array.denseArray[piv] = array.denseArray[right];
          array.denseArray[right] = x;
          int i = left - 1, j = right;
          while(true){
            do{
              y = array.denseArray[++i];
            }while(i < j && this.Compare(x, y) >= 0);
            do{
              y = array.denseArray[--j];
            }while(j > i && this.Compare(x, y) <= 0);
            if (i >= j)
              break;
            QuickSort.Swap(array.denseArray, i, j);
          }
          QuickSort.Swap(array.denseArray, i, right);
          this.SortArray(left, i-1);
          this.SortArray(i+1, right);
        }
      }
        

Usage Example

        internal virtual void Sort(ScriptFunction compareFn)
        {
            QuickSort qs     = new QuickSort(this, compareFn);
            uint      length = this.len;

            if (length <= this.denseArrayLength)
            {
                qs.SortArray(0, (int)length - 1);
            }
            else
            {
                qs.SortObject(0, length - 1);
            }
        }
All Usage Examples Of Microsoft.JScript.QuickSort::SortArray