数字的全排列

原创 2005年04月25日 15:19:00

#include<stdio.h>

#define NUMBER  5

FILE * fp;

void print_array(int p[])
{
 int i;
 for(i=0;i<NUMBER;i++)
 {
  printf("%d  ",p[i]);
  fprintf(fp,"%d ",p[i]);
 }
 fprintf(fp,"/n");
 printf("/n");
}

void print_array_fp(int p[])
{
 int i;
 for(i=0;i<NUMBER;i++)
 {
  fprintf(fp,"%d ",p[i]);
 }
 fprintf(fp,"/n");
}

void swap(int &x,int &y)
{
 int temp = x;
 x = y;
 y = temp;
}

//用递归
void f(int p[], int start, int end)
{
  int i;

  if (start == end)
    print_array(p); //打印p数组的值
  else
  {
    for(i = start; i <= end; i++)
 {

   fprintf(fp,"i = %d, start = %d, end = %d then swap1 p[start], p[i] : ", i,start,end);
      swap(p[start], p[i]);  //swap交换两变量的值
   print_array_fp(p);

   fprintf(fp,"f(%d,%d) /n",start+1,end);
      f(p, start+1, end);

   fprintf(fp,"i = %d, start = %d, end = %d then swap2 p[start], p[i] : ", i,start,end);
      swap(p[start], p[i]);
   print_array_fp(p);

    }
  }
}

void main()
{
 fp = fopen("c://result.txt","w+t");

 int data[NUMBER] = {1,2,3,4,5};

 f(data, 0, 4);
}

Java与算法之(4) - 数字全排列

全排列是指n个数(或其他字符)所有可能的排列顺序,例如1 2 3三个数字的全排列是 1 2 3, 1 3 2, 2 1 3, 2 3 1, 3 1 2, 3 2 1 那么问题来了,任意输入一个大于1...
  • autfish
  • autfish
  • 2016年08月31日 16:29
  • 6885

九度OJ 1366(栈操作) 1367(二叉树遍历) 1368(二叉树路径) 1369(字符串全排列) 1370(特殊数字查找)

1366:栈的压入、弹出序列http://ac.jobdu.com/problem.php?pid=1366题意输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。思路...

按rule全排列数字筛选(0-1背包)

//我有一列数1,2,3,4,5,6,7,8,9要实现全排序。要求1在2,3,4的左边,2在5,6的左边,3在6的左边,4在7的左边,5,6,7在8的左边,8在9的左边。其它的数位置随意,(如:1,4...
  • shi3590
  • shi3590
  • 2011年08月10日 15:54
  • 234

全排列的java实现(含重复数字)

题目原型: Given a collection of numbers that might contain duplicates, return all possible unique perm...

C语言算法—(生成数字的组合升级)生成数据的全排列(类似建立树的回溯法)

其实我们可以看到,在上一个算法(生成数字的组合)中,生成的数据中包含了已知数据的全排列在其中了; 所以我们可以对上一个程序生成的数据进行一次筛选就可以得到全排列;首先,给出上一个算法(生成数字的组合...

吸血鬼数字(全排列生成)

/** * P75 《Java 编程思想 第四版》 Bruce Eckel 吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到, 而这对数字各包含乘积的一半位数,其中从最初的数字中选取的...

数字的全排列

题目: 输入一个字符串,打印出该字符串中字符的所有全排列》例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc.、acb、bac。cab和cba。 一、递归版本 1、未去除重复...

PHP对于若干数字全排列/全组合的实现一例

以体彩11选5为例,共计11个数字,实现11个数字任3的全排列/全组合。 定义数组$balls = array('01','02','03','04','05','06','07','08','09'...

2013软件大赛 全排列加数字合并

标题:带分数     100 可以表示为带分数的形式:100 = 3 + 69258 / 714     还可以表示为:100 = 82 + 3546 / 197    ...

【100题】第六十六~第七十题(颠倒栈、扑克牌顺子和掷骰子概率、数字数组排成最小数、求旋转数组中最小值、全排列)

一,颠倒栈。 1)题目:用递归颠倒一个栈。例如输入栈{1, 2, 3, 4, 5},1在栈顶。颠倒之后的栈为{5, 4, 3, 2, 1},5处在栈顶。 2)分析:乍一看到这道题目,第一反...
  • twlkyao
  • twlkyao
  • 2013年06月23日 23:25
  • 1043
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数字的全排列
举报原因:
原因补充:

(最多只允许输入30个字)