Algorithm 排序算法工厂有哪些参数?

Algorithm 排序算法工厂有哪些参数?,algorithm,sorting,Algorithm,Sorting,我正在考虑创建软件,根据指定的要求生成所有可能的排序算法,以及最佳拟合算法。您会为该软件指定哪些实际需求?您将如何指定它们 我的建议是: getSortingAlgorithm(int memorySize, int timeConstraintInMillisec); //getSortingAlgorithm("O(n)", "O(n*log(n))"); getSortingAlgorithm(AssymptomaticConstaint memoryConstraint, Assymp

我正在考虑创建软件,根据指定的要求生成所有可能的排序算法,以及最佳拟合算法。您会为该软件指定哪些实际需求?您将如何指定它们

我的建议是:

getSortingAlgorithm(int memorySize, int timeConstraintInMillisec);

//getSortingAlgorithm("O(n)", "O(n*log(n))");
getSortingAlgorithm(AssymptomaticConstaint memoryConstraint, AssymptomaticConstaint timeConstraint);

强化、缓解这些限制的任何其他想法?

元素数量和缓存的大小/类型也可能是一种简化,以优化排序的缓存性能

也是一个布尔值,指示元素是否具有int值,因为整数排序不受基于比较的算法的限制


要使用的线程数可能也是一个问题:尝试在库中也创建并行算法。

您也可以使用稳定/不稳定参数

例如,冒泡排序和选择排序都具有时间复杂度:O(n2),内存:O(1)


但泡沫类型是稳定的

针对速度和存储进行优化

重新存储、cap max存储和使用文件进行“备份存储”(“分块”排序)

维护相同项目(或不相同项目)的顺序

索引排序

稳定性vs最佳平均速度vs利用“几乎分类”数据集

数据集的大小——对于较小的数据集,排序越简单,设置越少越好

键的大小——这会影响所使用的数据结构