排序算法测试程序入口
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.collections;
using system.diagnostics;
namespace sort
{
class program
{
static void main(string[] args)
{
//test(5);
efficiencytest(100000,10,"bubblesorter");
}
//<生成随机数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 test(int n)
{
int[] de = generaterandomnumber(n).toarray();
console.writeline("排序前:");
foreach (int dee in de)
{
console.writeline(dee);
}
//int[] d = mergesorter.sort(de);
//int[] d=heapsorter.sort(de);
//int[] d = shellsorter.sort(de);
//int[] d = insertsorter.sort(de);
//int[] d = selectsorter.sort(de);
//int[] d = cocktailsorter.sort(de);
int[] d = bubblesorter.sort(de);
console.writeline("排序后:");
foreach (int dee in d)
{
console.writeline(dee);
}
//console.readkey();
}
//测试各个排序算法效率
//调用name函数排序i个数j次
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;
console.writeline(cname + "排序" + i + "个数" + j + "次所用平均时间为:" + span + " 毫秒");
console.readkey();
}
}
}
以上就是 排序算法测试程序入口的内容。