Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            InsertionSorter Sorter1 = new InsertionSorter();
            BubbleSorter    Sorter2 = new BubbleSorter();
            SelectionSorter Sorter3 = new SelectionSorter();
            //生成随机元素的数组
            int    iCount = 10000;
            Random random = new Random();

            Sorter1.list = new int[iCount];
            Sorter2.list = new int[iCount];
            Sorter3.list = new int[iCount];
            for (int i = 0; i < iCount; ++i)
            {
                Sorter1.list[i] = Sorter2.list[i] = Sorter3.list[i] = random.Next();
            }
            //多线程运行
            Thread    sortThread1 = new Thread(new ThreadStart(Sorter1.Sort1));
            Thread    sortThread2 = new Thread(new ThreadStart(Sorter2.Sort2));
            Thread    sortThread3 = new Thread(new ThreadStart(Sorter3.Sort3));
            Thread    sortThread4 = new Thread(new ThreadStart(Sorter1.Sort1));
            Thread    sortThread5 = new Thread(new ThreadStart(Sorter2.Sort2));
            Thread    sortThread6 = new Thread(new ThreadStart(Sorter3.Sort3));
            Stopwatch star        = new Stopwatch();

            star.Start();
            sortThread1.Start();
            sortThread2.Start();
            sortThread3.Start();
            sortThread4.Start();
            sortThread5.Start();
            sortThread6.Start();

            while (true)
            {
                if (sortThread1.ThreadState == System.Threading.ThreadState.Stopped && sortThread2.ThreadState == System.Threading.ThreadState.Stopped && sortThread3.ThreadState == System.Threading.ThreadState.Stopped && sortThread4.ThreadState == System.Threading.ThreadState.Stopped && sortThread5.ThreadState == System.Threading.ThreadState.Stopped && sortThread6.ThreadState == System.Threading.ThreadState.Stopped)
                {
                    star.Stop();
                    Console.WriteLine(star.Elapsed.TotalMilliseconds);
                    break;
                }
            }
            Console.ReadKey();
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            InsertionSorter Sorter1 = new InsertionSorter();
            BubbleSorter    Sorter2 = new BubbleSorter();
            //生成随机元素的数组
            int    iCount = 10000;
            Random random = new Random();

            Sorter1.list = new int[iCount];
            Sorter2.list = new int[iCount];
            for (int i = 0; i < iCount; ++i)
            {
                Sorter1.list[i] = Sorter2.list[i] = random.Next();
            }
            Thread sortThrean1 = new Thread(new ThreadStart(Sorter1.Sort1));
            Thread sortThread2 = new Thread(new ThreadStart(Sorter2.Sort2));

            Console.Read();
        }