ホームページ > バックエンド開発 > C#.Net チュートリアル > ソートアルゴリズム大量データのテストコード

ソートアルゴリズム大量データのテストコード

黄舟
リリース: 2017-02-09 16:27:12
オリジナル
1762 人が閲覧しました

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

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);

                }

            }

 

        }

        //<生成随机数GenerateRandomNumber>

        public static List<int> GenerateRandomNumber(int Length)

        {

            List<int> newRandom = new List<int>();

            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 记录文本文件日志方法

        /// <summary>

        /// 记录文本文件日志方法

        /// </summary>

        /// <param name="FileContent">需要记录的文件内容</param>

        /// <param name="TxtFileName">保存的文件名</param>

        /// <param name="ErrMsg">错误信息</param>

        /// <returns></returns>

        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("<" + sDateTime + "> " + " " + FileContent);

            }

            catch (IOException e)

            {

                ErrMsg = e.Message;

                return false;

            }

            finally

            {

                if (writer != null)

                    writer.Close();

            }

            return true;

        }

        #endregion

    }

}

ログイン後にコピー

以上就是 排序算法大数据量测试代码的内容,更多相关内容请关注PHP中文网(www.php.cn)!


関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート