我一直在努力计算这些排序算法的持续时间.我将所有排序方法循环2000次,然后将总持续时间分成2000,以获得适当的持续时间值.问题是; 它没有显示排序方法的特定代码部分所用的确切时间值.我的意思是duration变量通过程序流显示增加的值.例如,对于N = 10000,insertionSort()给出0.000635,mergeSort()给出0.00836并heapSort()给出0.018485,当我改变它们的顺序时duration,无论算法类型如何,仍然通过程序上升.我尝试为每个进程提供不同的持续时间值,但这不起作用.有人可以帮助我理解这个问题,还是有其他时间测量风格?
对不起,如果这是一个愚蠢的问题和我的坏语法.
int main(){
srand(time(NULL));
int N, duration;
cout << endl << "N : ";
cin >> N; // N is array sze.
cout << endl;
// a4 would be the buffer array (for calculating proper duration).
int *a1 = new int[N];
int *a2 = new int[N];
int *a3 = new int[N];
int *a4 = new int[N];
cout << endl << "Unsorted array : " …Run Code Online (Sandbox Code Playgroud) 假设我们没有一个值均匀分布的列,假设我们有一个这样的命令:
sqoop import \
...
--boundary-query "SELECT min(id), max(id) from some_table"
--split-by id
...
Run Code Online (Sandbox Code Playgroud)
使用--boundary-query这一点有什么意义 - 而--split-by做同样的事情?有没有其他方法可以使用--boundary-query?或者,当没有密钥(唯一)列时,可以更有效地分割数据的任何其他方法?
1 3 0 2 4
0 4 1 3 2
3 1 4 2 0
1 4 3 0 2
3 0 2 4 1
3 2 4 0 1
0 2 4 1 3
Run Code Online (Sandbox Code Playgroud)
我在.txt文件中有这样的矩阵.现在,如何int**以最佳方式将此数据读入一种2D数组?我在网上搜索但找不到令人满意的答案.
array_2d = new int*[5];
for(int i = 0; i < 5; i++)
array_2d[i] = new int[7];
ifstream file_h(FILE_NAME_H);
//what do do here?
file_h.close();
Run Code Online (Sandbox Code Playgroud)