/// <summary>
        /// Intialization Base Distinct color & Number of CLuster & 3D RGP
        /// </summary>
        /// <param name="Distinct">Distinct color</param>
        /// <param name="NO_Claster">Number of CLuster</param>
        /// <param name="Grid">3D RGP Color Values</param>
        public MedianCutHelper(ref List <RGBPixel> Distinct, int NO_Claster, RGBPixel[, ,] Grid) : base(NO_Claster, Distinct, Grid)
        {
            CubesList = new List <MedianCutHelper>();
            MedianCutHelper a = new MedianCutHelper(li);

            CubesList.Add(a);
            RedLowBound  = GreenLowBound = BlueLowBound = 0;
            RedHighBound = GreenHighBound = BlueHighBound = 0;
        }
        /// <summary>
        /// [1] sort List of color in this Box And Split it
        /// [2]save tow box & his color
        /// </summary>
        /// <param name="Index">0 refer red , 1 refer Green ,2 refer to Blue </param>
        /// <param name="firstMedianCutCube">out element Like ref</param>
        /// <param name="secondMedianCutCube">out element Like ref</param>
        private void SplitAtMedian(Byte Index, out MedianCutHelper firstMedianCutCube, out MedianCutHelper secondMedianCutCube)
        {
            List <RGBPixel> colors = null;

            if (Index == 0)                                                      //Red
            {
                colors = colorList.OrderBy(RGBPixel => RGBPixel.red).ToList();   // NlogN
            }
            else if (Index == 1)                                                 //Green
            {
                colors = colorList.OrderBy(RGBPixel => RGBPixel.green).ToList(); // NlogN
            }
            else //blue
            {
                colors = colorList.OrderBy(RGBPixel => RGBPixel.blue).ToList();// NlogN
            }
            int medianIndex = colorList.Count / 2;

            firstMedianCutCube  = new MedianCutHelper(colors.GetRange(0, medianIndex)); // O(N/2)
            secondMedianCutCube = new MedianCutHelper(colors.GetRange(medianIndex, colors.Count - medianIndex));
        }