复杂度为 O(n^2) 的插入排序,并对先前的值使用二分查找来提高复杂度
Insertion Sort of O(n^2) complexity and using Binary Search on previous values to improve complexity
如果您将算法更改为使用二进制搜索而不是搜索以前的值,直到找到插入当前值的位置,算法(O(n^2)
的插入排序)的复杂性将如何变化。另外,这什么时候有用?
您的新复杂度仍然是二次方,因为您需要将所有已排序的部分向右移动。因此,使用二进制搜索只是稍微好一点。
对于大型数组,我会推荐一种快速排序算法(在 O(n log n)
时间内),二次插入排序算法仅适用于小型数组。
如果您将算法更改为使用二进制搜索而不是搜索以前的值,直到找到插入当前值的位置,算法(O(n^2)
的插入排序)的复杂性将如何变化。另外,这什么时候有用?
您的新复杂度仍然是二次方,因为您需要将所有已排序的部分向右移动。因此,使用二进制搜索只是稍微好一点。
对于大型数组,我会推荐一种快速排序算法(在 O(n log n)
时间内),二次插入排序算法仅适用于小型数组。