我被告知寻找一个循环携带的依赖,但我仍然不清楚定义和如何找到一个。如果有人可以给我一个提示或提示。我只需指向正确的方向。
void Count sort(int a[], int n) {
int i, j, count;
int* temp = malloc(n*sizeof(int));
for (i = 0; i < n; i++) {
count = 0;
for (j = 0; j < n; j++)
if (a[j] < a[i])
count++;
else if (a[j] == a[i] && j < i)
count++;
temp[count] = a[i];
}
memcpy(a, temp, n*sizeof(int));
free(temp);
} /* Count sort */
答案 0 :(得分:0)
我讨厌陈述显而易见的事情,但是对“循环携带依赖”进行[google]搜索。您将获得大约6000个结果,但请从:https://en.wikipedia.org/wiki/Loop_dependence_analysis
开始阅读整个页面[简短]获取术语,然后专注于具有所需定义的“分类”部分(该部分为“循环依赖”)。
我确实相信,因为您正在访问a[i]
和a[j]
以及i!=j
当您获得“循环依赖”时(即距离)是非零的)