对于排序算法,为什么不能将数组切成两半,只需在两者上使用选择排序或插入排序,并将它们重新组合在一起,以显着提高速度?
答案 0 :(得分:1)
您说您的算法比现有排序更快,例如,选择排序和插入排序。但是,一旦你将你的数组分成两半,你最好使用你的算法而不是选择/插入排序来对两半进行排序(可能除非两半都很小)。
这完全是合并排序。
答案 1 :(得分:0)
你是对的。在一些排序算法中遵循该方法。例如,在合并排序中,将数组分成两半,如果这两半是小的,你可以直接对它们应用插入排序,但如果它们很大,那么你不能更好地划分两半(请参阅Merge sort的详细信息)。插入排序/选择排序/冒泡排序在阵列较小时或通常在几乎排序的数据上执行得更好。如果要处理长数据,请选择合并排序/快速排序/ Redix排序。