Java 6中有哪些不同的排序算法?

Java 6中有哪些不同的排序算法?,java,algorithm,sorting,Java,Algorithm,Sorting,有几种排序算法,如插入排序、选择排序、冒泡排序等,在计算机科学教科书中经常讨论。给定一个整数或对象数组,是否有内置的Java 6语言API允许我选择应用特定的排序算法对数组进行排序,而不是重新设计这些轮子?如果没有内置到Java 6中,是否有提供此功能的开源库?它们是什么?您通常无法选择(无论如何,内置排序)。Collections类提供了一个sort方法,该方法对于大多数需要应该足够有效。该方法在所有基元类型数组中使用快速排序 排序算法是一种经过调整的快速排序算法,改编自Jon L.Bentl

有几种排序算法,如插入排序、选择排序、冒泡排序等,在计算机科学教科书中经常讨论。给定一个整数或对象数组,是否有内置的Java 6语言API允许我选择应用特定的排序算法对数组进行排序,而不是重新设计这些轮子?如果没有内置到Java 6中,是否有提供此功能的开源库?它们是什么?

您通常无法选择(无论如何,内置排序)。
Collections
类提供了一个
sort
方法,该方法对于大多数需要应该足够有效。

该方法在所有基元类型数组中使用快速排序

排序算法是一种经过调整的快速排序算法,改编自Jon L.Bentley和M.Douglas McIlroy的“工程排序功能”,软件实践与经验,第23卷(11)第1249-1265页(1993年11月)。该算法在许多数据集上提供n*log(n)性能,这些数据集会导致其他快速排序降级为二次性能

该方法使用合并排序。这种排序也用于and
数组。排序(T[],Comparator使用一种经过调优的快速排序


使用修改后的合并排序。

请注意,这在Java 7中是不同的-请参阅@amc,您有48个问题没有被接受的答案。也许您可以跟进答案以便被接受。请注意,
Arrays.sort(Object[])
也使用合并排序。如果您可以将其压缩到某个地方,我可以删除我的问题。