示例#1
0
        public void sort()
        {
            int range = (finalArray.Length * 10) / 13;

            printQueue.push(originalArray, "Original array", 0, 0, State.NONE);

            do
            {
                Tuple <int, int[]> rangeAndArray = parseOnce(range, finalArray);

                range      = rangeAndArray.Item1;
                finalArray = rangeAndArray.Item2;
            }while (range != 0);

            printQueue.push(finalArray, null, 0, 0, State.DONE);
        }
示例#2
0
        public void sort()
        {
            int leftIndex = 0;

            finalResult = (int[])originalArray.Clone();

            printQueue.push(originalArray, "Original array", 0, 0, State.NONE);

            while (leftIndex < originalArray.Length)
            {
                int minIndex = findMinIndex(finalResult, leftIndex);

                finalResult = shiftRight(finalResult, minIndex, leftIndex);
                leftIndex++;
            }

            printQueue.push(finalResult, null, 0, 0, State.DONE);
        }
示例#3
0
        public void sort()
        {
            //printArrayWithMessage("Original array", originalArray);
            printQueue.push(originalArray, "Original array", 0, 0, State.NONE);

            Boolean hasChanged = false;

            do
            {
                //Console.WriteLine("---------------------");
                //printArrayWithMessage("Parsing the aray...", finalArray

                Tuple <int[], bool> arrayAndFlag = parseOnce(finalArray);
                finalArray = arrayAndFlag.Item1;
                hasChanged = arrayAndFlag.Item2;
            } while (hasChanged);

            //Console.WriteLine("---------------------");
            //Console.WriteLine("Done");
            printQueue.push(finalArray, "Done", 0, 0, State.DONE);
        }