Feng.Li's Java See

抓紧时间,大步向前。
随笔 - 95, 文章 - 4, 评论 - 58, 引用 - 0
数据加载中……

全排列的非递归算法



= malloc(n * sizeof(int));
for (i = 0; i < n; i++)
   p[i] 
= i;

output(p, n);

for (i = n - 1; i > 0; i--)
   
if (p[i] > p[i - 1])
   {
      
for (j = n - 1; p[j] < p[i - 1]; j--);
      swap(
&(p[i - 1]), &(p[j]));

      
for (j = i, k = n - 1; j < k; j++, k--)
         swap(
&(p[j]), &(p[k]));

      ouput(p, n);
      i 
= n;
   }

free(p);

posted on 2008-04-16 02:25 小锋 阅读(572) 评论(0)  编辑  收藏 所属分类: algorithm


只有注册用户登录后才能发表评论。


网站导航: