算法积累

来源:互联网 发布:保友电脑椅 知乎 编辑:程序博客网 时间:2024/05/16 11:34

一:全排列算法:

看到一个面试题,打印全排列,简单实现一下

 

#include <stdio.h>
#include 
<stdlib.h>

//打印全排列的算法
char array[100];
int totalnum = 0;
void arrange(char * array,int begin,int end)
{
    
if(begin==end)
    
{
        totalnum
++;
        printf(
"%d :%s ",totalnum,array);
        
return;
    }

    
for(int i=begin;i<end;i++)
    
{
        
char tmp = array[begin];
        array[begin] 
= array[i];
        array[i] 
= tmp;
        arrange(array,begin
+1,end);
        array[i] 
= array[begin];
        array[begin] 
= tmp;
    }

}


int main(int argc,char * argv[])
{
    
//全排列字符数目
    int num = 3;

    
for(int i=0;i<num;i++)
    
{
        array[i] 
= (char)('a'+i);
    }

    array[num] 
= 0;

    arrange(array,
0,num);

    printf(
"ok! ");
}

 

 

原创粉丝点击