main () { int *a,*b,*c; clock_t begin, end; double time_spent; a = NULL; b = NULL; c = NULL; a = (int *) malloc ( sizeof(int) * TAM); b = (int *) malloc ( sizeof(int) * TAM); c = (int *) malloc ( sizeof(int) * TAM); initialize(a,b); begin = clock(); vecAdd(a,b,c); end = clock(); printAdd(a,b,c); time_spent = (double)(end - begin) / CLOCKS_PER_SEC; printf("Se ha demorado %f segundos.\n",time_spent); free(a); free(b); free(c); }
void Wikidiff2::diffLines(const StringVector & lines1, const StringVector & lines2, int numContextLines, int maxMovedLines) { // first do line-level diff StringDiff linediff(lines1, lines2); int from_index = 1, to_index = 1; // Should a line number be printed before the next context line? // Set to true initially so we get a line number on line 1 bool showLineNumber = true; for (int i = 0; i < linediff.size(); ++i) { int n, j, n1, n2; // Line 1 changed, show heading with no leading context if (linediff[i].op != DiffOp<String>::copy && i == 0) { printBlockHeader(1, 1); } switch (linediff[i].op) { case DiffOp<String>::add: // inserted lines n = linediff[i].to.size(); for (j=0; j<n; j++) { if (!printMovedLineDiff(linediff, i, j, maxMovedLines)) { printAdd(*linediff[i].to[j]); } } to_index += n; break; case DiffOp<String>::del: // deleted lines n = linediff[i].from.size(); for (j=0; j<n; j++) { if (!printMovedLineDiff(linediff, i, j, maxMovedLines)) { printDelete(*linediff[i].from[j]); } } from_index += n; break; case DiffOp<String>::copy: // copy/context n = linediff[i].from.size(); for (j=0; j<n; j++) { if ((i != 0 && j < numContextLines) /*trailing*/ || (i != linediff.size() - 1 && j >= n - numContextLines)) /*leading*/ { if (showLineNumber) { printBlockHeader(from_index, to_index); showLineNumber = false; } printContext(*linediff[i].from[j]); } else { showLineNumber = true; } from_index++; to_index++; } break; case DiffOp<String>::change: // replace, i.e. we do a word diff between the two sets of lines n1 = linediff[i].from.size(); n2 = linediff[i].to.size(); n = std::min(n1, n2); for (j=0; j<n; j++) { printWordDiff(*linediff[i].from[j], *linediff[i].to[j]); } from_index += n; to_index += n; break; } // Not first line anymore, don't show line number by default showLineNumber = false; } }