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

Posted wx62de6f4b9369e

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法大数据量测试代码相关的知识,希望对你有一定的参考价值。


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

​排序算法大数据量测试结果​


作者:jiankunking​​​​

以上是关于排序算法大数据量测试代码的主要内容,如果未能解决你的问题,请参考以下文章

10分钟看懂10大经典算法(Swift代码实现)

排序算法的实现

从另一个角度看大数据量处理利器 布隆过滤器

算法篇利用堆高效解决大数据量时TOP-K问题

大数据量的冒泡排序 (计次数)

经典排序算法之归并排序