求问一个时间复杂度计算,算十年了都没算出来

七水又掉分啦七水又掉分啦 · 2022-05-10 12:22
#include <iostream> void nb_sort(int* a, int l, int r) { if (l >= r) return; int m = (l+r)>>1; nb_sort(a, l, m); nb_sort(a, m+1, r); if (a[m] > a[r]) std::swap(a[m], a[r]); nb_sort(a, l, r-1); } int main() { int a[10]={2,4,5,6,7,8,1,9,10,3}; nb_sort(a, 0, 9); for (int i = 0;i < 10;++i) { printf("%d ", a[i]); } return 0; }
1 个回答
英雄哪里出来
英雄哪里出来
天道酬勤
如果看代码看不出来,建议数据量搞大一点,然后定义一个全局变量,在 nb_sort 这个函数里面对计数器执行++。观察数据量和计数器的函数关系,大数据下就能得到一个函数图像,这个就是一个比较接近真实的时间复杂度。
2
反对
1
收藏
2022-05-10 12:43