为什么大多数人对元素少于n的子数组使用插入排序来优化快速排序?我编写了一个插入排序函数和shell排序函数,并使用一些包含10、50、100个元素的随机数组来调用它们。shell排序似乎更快(我只用clock()来测量时间;我不知道这是不是一个好方法)。如果它比插入排序快,为什么不更多的人使用shell排序呢?我在插入排序函数中有错误吗?: Sorted in 0.002000 m
V8对长度超过10个元素的数组使用快速排序,对于小于该长度的数组使用插入排序。.
// For short (length <= 10) arrays, insertion sort is used for efficiency.我想知道为什么不使用shell排序而不是插入排序?我知道,对于一个由10个元素组成的数组来说,这可能没有什么区别,但仍然如此。有什么想法吗?
在Haskell中,sort的类型为(Functor io, MonadIO io, Ord a) => Shell a -> io [a]。它以Shell monad的形式接收流,将其排序为列表,然后将其包装在MonadIO??中。我原以为sort是(Ord a) => Shell a -> Shell a,所以它很适