c# - C# 中的快速排序错误复杂度
问题描述
我正在对排序算法进行一些分析,但遇到了快速排序的问题。在网上找了一些图表,看到我的图表和其他的图表有很大的不同,我想知道为什么。
这是我的代码:
static int Particao(int[] vet, int min, int max, int modo)
{
int i = min;
int j = max;
int pivot;
if (modo == 0)
pivot = vet[(min + max) / 2];
else
pivot = vet[min];
while (i <= j)
{
while (vet[i] < pivot)
i++;
while (vet[j] > pivot)
j--;
if (i <= j)
{
int aux = vet[i];
vet[i] = vet[j];
vet[j] = aux;
i++;
j--;
}
};
return i;
}
static void QuickSort(int[] vet, int ini, int fim)
{
int pivo = Particao(vet, ini, fim, 0);
if (ini < pivo - 1)
QuickSort(vet, ini, pivo - 1);
if (pivo < fim)
QuickSort(vet, pivo, fim);
}
我的图表(时间以毫秒为单位乘以 1000):
谢谢 =)
解决方案
由于测量值不同,您的图表与其他图表不同。其他图表有更多的数据点和许多平均测量值,以防止错误。
您的图表只有 6 个数据点,每个数据点有 1 个测量值,因此很难从中得出任何结论。
也许您可以测量掉期或比较的数量并从中推断出图表?
推荐阅读
- postgresql - 如何获取具有连接的postgresql中具有相同ID的多条记录的事务表的最后一条记录?
- r - 数据框删除单元格内的重复值
- git - 上一次提交的 Git cherrypick
- python - 如何在 python 3 中使用户输入不区分大小写?
- angular - PrimeNG模板中的表格不显示
- html - 输入字段在错误的输入字段上保存了密码
- amazon-web-services - AWS Lambda 被执行 3 次
- c++ - c ++类读取ascii文件并进行操作
- python-3.x - 如何将标量数组转换为二维数组?
- charts - jasperreports:如何在 xlsx (Excel) 报告中包含图表?