您好,欢迎访问一九零五行业门户网

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

排序算法大数据量测试代码
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 } }
以上就是 排序算法大数据量测试代码的内容。
其它类似信息

推荐信息