# 排序算法测试程序入口

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++)
{
}
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);
}
}
//测试各个排序算法效率
//调用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 + " 毫秒");
}
}
}

|
1月前
|

Java虚拟机（JVM）使用多种垃圾回收算法来管理内存，以确保程序运行时不会因为内存不足而崩溃。
【6月更文挑战第20天】Java JVM运用多种GC算法，如标记-清除、复制、标记-压缩、分代收集、增量收集、并行收集和并发标记，以自动化内存管理，防止因内存耗尽导致的程序崩溃。这些算法各有优劣，适应不同的性能和资源需求。垃圾回收旨在避免手动内存管理，简化编程。当遇到内存泄漏，可以借助VisualVM、JConsole或MAT等工具监测内存、生成堆转储，分析引用链并定位泄漏源，从而解决问题。
32 4
|
28天前
|

18 0
|
28天前
|

15 0
|
28天前
|

16 0
|
28天前
|

|
28天前
|

17 0
|
29天前
|

12 0
|
1月前
|

Java算法编程详解和程序实例
Java算法编程详解和程序实例
20 0
|
2月前
|

【5月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏，专业攻坚指数级提升，希望能够助你一臂之力，帮你早日登顶实现财富自由🚀；同时，欢迎大家关注&&收藏&&订阅！持续更新中，up！up！up！！
26 0
|
2月前
|

43 4