插入排序在VS上特别快,已调release
来源:2-6 插入排序法的改进
纸女神
2018-02-15
template<typename T> void insertionSort(T arr[], int n) { for (int i = 1; i < n; i++) { T e = arr[i]; int j; for (j = i; j > 0 && arr[j] < arr[j - 1]; j--) arr[j] = arr[j - 1]; arr[j] = e; } }
int main() { const int n = 10000; int *arr1 = SortTestHeiper::generateRandomArray(n, 0, n); int *arr2 = SortTestHeiper::copyIntArray(arr1, n); SortTestHeiper::TestSort("Insertion Sort", Sort::insertionSort, arr1, n); SortTestHeiper::TestSort("Selection Sort", Sort::selectionSort, arr2, n); delete[] arr1; delete[] arr2; return 0; } 10000的数量级
1000000的数量,selection sort 太慢了,注释了
为什么会这样呢
写回答
1回答
-
O(n^2)的排序就是这么慢哦。但是如果换成O(nlogn)的排序,100万的数据是小case,这就是算法的力量:)
022018-02-15
相似问题