循环在哪里依赖,如果存在的话?

时间:2015-10-27 01:51:15

标签: c loops sorting

我被告知寻找一个循环携带的依赖,但我仍然不清楚定义和如何找到一个。如果有人可以给我一个提示或提示。我只需指向正确的方向。

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 */

1 个答案:

答案 0 :(得分:0)

我讨厌陈述显而易见的事情,但是对“循环携带依赖”进行[google]搜索。您将获得大约6000个结果,但请从:https://en.wikipedia.org/wiki/Loop_dependence_analysis

开始

阅读整个页面[简短]获取术语,然后专注于具有所需定义的“分类”部分(该部分为“循环依赖”)。

我确实相信,因为您正在访问a[i]a[j]以及i!=j当您获得“循环依赖”时(即距离)是非零的)