您当前的位置: 首页 >  大数据

衣舞晨风

暂无认证

  • 1浏览

    0关注

    1156博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

排序算法大数据量测试代码

衣舞晨风 发布时间:2014-01-08 09:47:59 ,浏览量:1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Diagnostics;
using System.IO;
namespace Sort
{
    class Program
    {
        static string ErrMsg = string.Empty;
        static void Main(string[] args)
        {
            string[] str = { "MergeSorter", "HeapSorter", "ShellSorter", "InsertSorter", "SelectSorter", "CockTailSorter", "BubbleSorter", "QuickSorter" };
            foreach(string name in str)
            {
                int number =20000;
                for (int i = 0; i < 5;i++ )
                {
                    number = number + 20000;
                    EfficiencyTest(number, 1,name);
                }
            }

        }
        //
        public static List GenerateRandomNumber(int Length)
        {
            List newRandom = new List();
            Random rd = new Random();
            for (int i = 0; i < Length; i++)
            {
                newRandom.Add(rd.Next());
            }
            return newRandom;
        }
        //测试各个排序算法效率
        private static void  EfficiencyTest(int i, int j, string Name)
        {
            double AverageTime = 0; ;
            string Cname = null;
            for (int n = 0; n < j; n++)
            {
                int[] de = GenerateRandomNumber(i).ToArray();
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                DateTime dateStart = DateTime.Now;
                switch (Name)
                {
                    case "MergeSorter":
                        MergeSorter.Sort(de);
                        Cname = "MergeSorter";
                        break;
                    case "HeapSorter":
                        HeapSorter.Sort(de);
                        Cname = "HeapSorter";
                        break;
                    case "ShellSorter":
                        ShellSorter.Sort(de);
                        Cname = "ShellSorter";
                        break;
                    case "InsertSorter":
                        InsertSorter.Sort(de);
                        Cname = "InsertSorter";
                        break;
                    case "SelectSorter":
                        SelectSorter.Sort(de);
                        Cname = "SelectSorter";
                        break;
                    case "CockTailSorter":
                        CockTailSorter.Sort(de);
                        Cname = "CockTailSorter";
                        break;
                    case "BubbleSorter":
                        BubbleSorter.Sort(de);
                        Cname = "BubbleSorter";
                        break;
                    case "QuickSorter":
                        QuickSorter.Sort(de);
                        Cname = "QuickSorter";
                        break;
                }
                stopwatch.Stop();
                AverageTime = (DateTime.Now - dateStart).TotalMilliseconds;
            }
            Double span = AverageTime / j;
            string str = Cname + "排序" + i + "个数" + j + "次所用平均时间为:" + span + " 毫秒";
            WriteFile(str,"", out ErrMsg);
        }
        #region 记录文本文件日志方法
        /// 
        /// 记录文本文件日志方法
        /// 
        /// 需要记录的文件内容
        /// 保存的文件名
        /// 错误信息
        /// 
        private static bool WriteFile(string FileContent, string TxtFileName, out string ErrMsg)
        {
            ErrMsg = string.Empty;
            StreamWriter writer = null;
            string sCurDate = System.DateTime.Now.ToString("yyyy-MM-dd");
            string sFile = "D:\\Log\\Log001.txt";
            try
            {
                if (File.Exists(sFile))
                    writer = new StreamWriter(sFile, true, System.Text.Encoding.GetEncoding("UTF-8"));
                else
                    writer = new StreamWriter(sFile, false, System.Text.Encoding.GetEncoding("UTF-8"));
                string sDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:sss");
                writer.WriteLine(" " + " " + FileContent);
            }
            catch (IOException e)
            {
                ErrMsg = e.Message;
                return false;
            }
            finally
            {
                if (writer != null)
                    writer.Close();
            }
            return true;
        }
        #endregion
    }
}

排序算法大数据量测试结果
作者:jiankunking 出处:http://blog.csdn.net/jiankunking
关注
打赏
1647422595
查看更多评论
立即登录/注册

微信扫码登录

0.0385s