首页 > C风格编程语言 > PHP编程技术 > 关于排列的问题
2009
05-27

关于排列的问题

   最近在网上有很多的排列的程序,很多种方法,但都觉看不懂,所以自己写了一个自己能看懂的,思路很简单,就是俩俩交换,速度还行。


// test_67.cpp : Defines the entry point for the console application.
//


#include “stdafx.h”
#include<stdio.h>
#define N 20
int pailie(int newnum[]);
int swap(int *a,int *b);
int main()
{
 int num[N],save[N],i=0,j=0,k=0;
 printf(“请输入%d个数:”,N);
    for(i=0;i<N;i++)
 {
  scanf(“%d”,&num[i]);
  save[i]=num[i];
 }
 for(i=0;i<N;i++)
 {


  for(j=0;j<N;j++)
  {
   if(i!=j)
   {
    swap(num+i,num+j);
   
   }
   pailie(num);
   for(k=0;k<N;k++)
   {
    num[k]=save[k];
   }
  }
 }
 
 return 0;
}
int swap(int *a,int *b)
{
 int temp;
 temp=*a;
 *a=*b;
 *b=temp;
 return 0;
}
int pailie(int newnum[])
{
 int i=0;
 for (i=0;i<N;i++)
 {
  printf(“%d “,newnum[i]);
 }
 printf(“\n”);
 return 0;
}



希望各高手指点!


关于排列的问题》有 2 条评论

  1. hiroki 说:

    排列算法一向都是很复杂   不仔细看  是看不出来   只有 很模块  才可以清楚

留下一个回复