public void RunSequence(string outFile, List<int> ns, List<double> ps, List<double> alphas, int repeatCount)
        {
            var m = new Measurements();
            var sw = new Stopwatch();

            foreach (var alpha in alphas)
            {
                foreach (var n in ns)
                {
                    for (var x = 0; x < repeatCount; x++)
                    {
                        WriteLine(alpha + "a      " + 0 + "p       " + n);                       
                        // create or reset stuff
                        var sgt = new DataStructures.SGTree<int>(alpha);
                        var SGTNodes = new List<DataStructures.SGTNode<int>>(n);
                        
                        for(var i = 1; i < n; i++)
                        {
                            SGTNodes.Add(new DataStructures.SGTNode<int>(i));
                        }
                        sw.Reset();
                        sw.Start();
                        sgt.insertFirst(0);                        
                        sw.Stop();
                        m.Add(n, 0, alpha, sw.ElapsedTicks);
                    }                    
                }
            }

            m.WriteToFile(outFile);
        }
示例#2
0
        public void RunSequence(string outFile, List <int> ns, List <double> ps, List <double> alphas, int repeatCount)
        {
            var m  = new Measurements();
            var sw = new Stopwatch();

            foreach (var alpha in alphas)
            {
                foreach (var n in ns)
                {
                    for (var x = 0; x < repeatCount; x++)
                    {
                        WriteLine(alpha + "a      " + 0 + "p       " + n);
                        // create or reset stuff
                        var sgt      = new DataStructures.SGTree <int>(alpha);
                        var SGTNodes = new List <DataStructures.SGTNode <int> >(n);

                        for (var i = 1; i < n; i++)
                        {
                            SGTNodes.Add(new DataStructures.SGTNode <int>(i));
                        }
                        sw.Reset();
                        sw.Start();
                        sgt.insertFirst(0);
                        sw.Stop();
                        m.Add(n, 0, alpha, sw.ElapsedTicks);
                    }
                }
            }

            m.WriteToFile(outFile);
        }
        public void Run(string outFile, List<int> ns, List<double> ps, List<double> alphas, int repeatCount)
        {
            var m = new Measurements();
            var random = new Random(DateTime.Now.Millisecond);
            var sw = new Stopwatch();

            foreach (var alpha in alphas)
            {
                foreach(var p in ps)
                {
                    foreach (var n in ns) 
                    {
                        for(var x = 0; x < repeatCount; x++)
                        {
                            WriteLine(alpha + "a      " + p + "p       " + n);
                            // create or reset stuff
                            var sgt = new DataStructures.SGTree<int>(alpha);
                            var SGTNodes = new List<DataStructures.SGTNode<int>>(n);
                            sw.Reset();
                            sw.Start();
                            var prev = sgt.insertFirst(0);
                            SGTNodes.Add(prev);
                            for (var i = 0; i < n; i++)
                            {
                                // sequential probability 
                                if (random.Next(0, 100) / 100.0 < p)
                                {
                                    prev = sgt.insertAfter(prev, i); 
                                    SGTNodes.Add(prev);
                                }
                                else
                                {
                                    var at = random.Next(0, i);
                                    prev = sgt.insertAfter(SGTNodes[at], i);
                                    SGTNodes.Add(prev);
                                }
                            }                            
                            sw.Stop();
                            m.Add(n, p, alpha, sw.ElapsedTicks);                            
                        }                        
                    }
                }
            }

            m.WriteToFile(outFile);
        }
示例#4
0
        public void Run(string outFile, List <int> ns, List <double> ps, List <double> alphas, int repeatCount)
        {
            var m      = new Measurements();
            var random = new Random(DateTime.Now.Millisecond);
            var sw     = new Stopwatch();

            foreach (var alpha in alphas)
            {
                foreach (var p in ps)
                {
                    foreach (var n in ns)
                    {
                        for (var x = 0; x < repeatCount; x++)
                        {
                            WriteLine(alpha + "a      " + p + "p       " + n);
                            // create or reset stuff
                            var sgt      = new DataStructures.SGTree <int>(alpha);
                            var SGTNodes = new List <DataStructures.SGTNode <int> >(n);
                            sw.Reset();
                            sw.Start();
                            var prev = sgt.insertFirst(0);
                            SGTNodes.Add(prev);
                            for (var i = 0; i < n; i++)
                            {
                                // sequential probability
                                if (random.Next(0, 100) / 100.0 < p)
                                {
                                    prev = sgt.insertAfter(prev, i);
                                    SGTNodes.Add(prev);
                                }
                                else
                                {
                                    var at = random.Next(0, i);
                                    prev = sgt.insertAfter(SGTNodes[at], i);
                                    SGTNodes.Add(prev);
                                }
                            }
                            sw.Stop();
                            m.Add(n, p, alpha, sw.ElapsedTicks);
                        }
                    }
                }
            }

            m.WriteToFile(outFile);
        }