public Tuple <double, double> RunDeletion(int arraySize, int nbArrays)
        {
            Init(arraySize, nbArrays);
            Stopwatch watch;
            double    elapsedMsRedBlack = 0;
            double    elapsedMsAVL      = 0;

            for (int i = 0; i < nbArrays; i++)
            {
                RedBlackTree <int, string> rbTree = new RedBlackTree <int, string>();
                rbTree.Add(0, "0");
                watch = Stopwatch.StartNew();
                rbTree.RemoveMin();
                watch.Stop();
                double ticks        = watch.ElapsedTicks;
                double microseconds = (ticks / Stopwatch.Frequency) * 1000000;
                elapsedMsRedBlack += microseconds;

                AVL AVLtree = new AVL(arrays[i]);
                AVLtree.Add(0);
                watch = Stopwatch.StartNew();
                AVLtree.Delete(0);
                watch.Stop();
                ticks         = watch.ElapsedTicks;
                microseconds  = (ticks / Stopwatch.Frequency) * 1000000;
                elapsedMsAVL += microseconds;
            }
            elapsedMsRedBlack /= nbArrays;
            elapsedMsAVL      /= nbArrays;
            return(new Tuple <double, double>(elapsedMsRedBlack, elapsedMsAVL));
        }
        public override Tuple <double, double> RunDeletion(int arraySize, int nbArrays)
        {
            Init(arraySize, nbArrays);
            Stopwatch watch;
            double    elapsedMsAVL  = 0;
            double    elapsedMsHeap = 0;

            for (int i = 0; i < nbArrays; i++)
            {
                AVL tree = new AVL(arrays[i]);
                tree.Add(0);
                watch = Stopwatch.StartNew();
                tree.Delete(0);
                watch.Stop();
                double ticks        = watch.ElapsedTicks;
                double microseconds = (ticks / Stopwatch.Frequency) * 1000000;
                elapsedMsAVL += microseconds;

                MinHeap heap = new MinHeap(arrays[i]);
                heap.Insert(0);
                watch = Stopwatch.StartNew();
                heap.Pop();
                watch.Stop();
                ticks          = watch.ElapsedTicks;
                microseconds   = (ticks / Stopwatch.Frequency) * 1000000;
                elapsedMsHeap += microseconds;
            }
            elapsedMsAVL  /= nbArrays;
            elapsedMsHeap /= nbArrays;
            return(new Tuple <double, double>(elapsedMsAVL, elapsedMsHeap));
        }
示例#3
0
        public override Tuple <double, double> RunDeletion(int arraySize, int nbArrays)
        {
            Init(arraySize, nbArrays);
            Stopwatch watch;
            double    elapsedMsMutable   = 0;
            double    elapsedMsImmutable = 0;

            for (int i = 0; i < nbArrays; i++)
            {
                AVL tree = new AVL(arrays[i]);
                tree.Add(0);
                watch = Stopwatch.StartNew();
                tree.Delete(0);
                watch.Stop();
                double ticks        = watch.ElapsedTicks;
                double microseconds = (ticks / Stopwatch.Frequency) * 1000000;
                elapsedMsMutable += microseconds;

                ImmutableAVL immutableAvl = new ImmutableAVL(arrays[i]);
                immutableAvl.Add(0);
                watch = Stopwatch.StartNew();
                immutableAvl.Delete(0);
                watch.Stop();
                ticks               = watch.ElapsedTicks;
                microseconds        = (ticks / Stopwatch.Frequency) * 1000000;
                elapsedMsImmutable += microseconds;
            }
            elapsedMsMutable   /= nbArrays;
            elapsedMsImmutable /= nbArrays;
            return(new Tuple <double, double>(elapsedMsMutable, elapsedMsImmutable));
        }
示例#4
0
文件: AVLTree.cs 项目: Premsjce/DJP
        public static void Driver()
        {
            AVL avlTree = new AVL();

            for (int i = 1; i <= 40; i++)
            {
                avlTree.Add(i);
            }

            avlTree.DisplayTree();
            Console.WriteLine();

            avlTree.Delete(15);
            avlTree.DisplayTree();
            Console.WriteLine();

            avlTree.Delete(3);
            avlTree.DisplayTree();
            Console.WriteLine();
        }