C# 保留排序算法的统计信息
我有一个关于c语言面向对象编程的家庭作业。作为我家庭作业的一部分,我需要制作两种不同的排序算法,并将随机数放入其中,观察两种不同算法的统计数据。 关于这一点,我的老师在电子邮件中告诉我,“非静态排序类可以保留有关排序多少个数字、速度、最小值、最大值、平均值……的统计信息。” 我的排序算法是插入和计数排序。请告诉我如何保存有关排序的统计信息 别忘了我作业的主题是OOPC# 保留排序算法的统计信息,c#,sorting,oop,C#,Sorting,Oop,我有一个关于c语言面向对象编程的家庭作业。作为我家庭作业的一部分,我需要制作两种不同的排序算法,并将随机数放入其中,观察两种不同算法的统计数据。 关于这一点,我的老师在电子邮件中告诉我,“非静态排序类可以保留有关排序多少个数字、速度、最小值、最大值、平均值……的统计信息。” 我的排序算法是插入和计数排序。请告诉我如何保存有关排序的统计信息 别忘了我作业的主题是OOP class InsertionSorting : Sort { public override List<i
class InsertionSorting : Sort
{
public override List<int> Sorting(List<int> SortList)
{
for ( int i=0; i<SortList.Count-1; i++)
{
for (int j= i+1; j>0; j--)
{
if (SortList[j-1] > SortList [j])
{
int temp = SortList[j - 1];
SortList[j - 1] = SortList[j];
SortList[j] = temp;
}
}
}
return SortList;
}
}
class CountSorting : Sort
{
public override List<int> Sorting(List<int> SortList)
{
int n = SortList.Count;
List<int> output = new List<int>();
List<int> count = new List<int>();
for (int i = 0; i < 1000; ++i)
{
count.Add(0);
output.Add(0);
}
for (int i = 0; i < n; ++i)
++count[SortList[i]];
for (int i = 1; i <= 999; ++i)
count[i] += count[i - 1];
for (int i = 0; i < n; ++i)
{
output[count[SortList[i]] - 1] = SortList[i];
--count[SortList[i]];
}
for (int i = 0; i < SortList.Count; i++)
SortList[i] = output[i];
return SortList;
}
}
类插入排序:排序
{
公共覆盖列表排序(列表排序列表)
{
对于(int i=0;i0;j--)
{
if(排序列表[j-1]>排序列表[j])
{
int temp=SortList[j-1];
SortList[j-1]=SortList[j];
SortList[j]=温度;
}
}
}
返回排序列表;
}
}
类计数排序:排序
{
公共覆盖列表排序(列表排序列表)
{
int n=排序列表计数;
列表输出=新列表();
列表计数=新列表();
对于(int i=0;i<1000;++i)
{
计数。添加(0);
输出。添加(0);
}
对于(int i=0;i 对于(inti=1;i您的排序分为两个类-InsertionSorting和CountSorting
如果您想跟踪统计信息,请在类中声明一个变量,并在每次迭代等时递增它,那么您可以看到哪个更有效
例如
您还可以声明开始时间和结束时间,以确定排序所用的时间。在“排序”开始时,记录开始时间,在返回之前,记录结束时间。编写一个方法报告差异。您的教授已经告诉您当他们说“…有关排序多少个数字、速度、最小值、最大值、平均值的统计信息…”您最好创建一个类,如“统计信息”,它包含一个允许用户通过args或直接用户提示进行输入的方法。变量应与“要排序的数字计数”“数字范围的下限”一样简单数字范围的上限”,如果测试过程自动化,“迭代次数”
给出这些问题的答案后,您应该与它们一起运行两个排序算法(例如使用随机数生成器,使用max和min生成一个列表)。您的排序算法需要添加一个来“记录”这些统计信息。很可能是一个跟踪数组中发生的位置交换数量的变量
我不打算给你写作业(那是你的工作,你应该做得很好。)但如果你对此还有任何问题,如果这太模糊,而你仍在挣扎,我可能会引导你朝着正确的方向前进
class InsertionSorting : Sort
{
private int iterations = 0
...
for (int j= i+1; j>0; j--)
{
if (SortList[j-1] > SortList [j])
{
iterations++
...