注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

TOTO

Think and Be Different

 
 
 

日志

 
 

全排列算法[zz]  

2006-12-08 22:14:15|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 
#include<stdlib.h>  
#include<stdio.h>
#define swap_char(a,b) {char c=(a);(a)=(b);(b)=c;}
void full_array(char *full_array_string);
void sort_string(char *str,int start,int end);
void reverse(char *str,int start,int end);
int main(int argc,char *argv[]){
    if(argc != 2){ 
    printf("Usage : %s  "0192837465 " n",argv[0]);
     exit(0);
    }
    full_array(argv[1]);
    return 0;
  }
    void full_array(char *str){
    int loop_index,result_count=1,length;
    char *full_array_string;
    length = strlen(str);
    full_array_string = (char *)malloc(length + 1);
    if(!full_array_string){
     puts("Out of memory.");
     exit(-1);
    }
    strcpy(full_array_string,str);
    sort_string(full_array_string,0,length);
    do{
      int i;
      printf("%s n",full_array_string);//打印结果
      loop_index = length-2;
      for(;0 <= loop_index && full_array_string[loop_index] >= full_array_string[loop_index+1];loop_index--){
               }    
   if(loop_index<0){               break;      }
      for(i=length-1;i>loop_index;i--){
        if(full_array_string[i]>full_array_string[loop_index])break;
      }
      swap_char(full_array_string[loop_index],full_array_string[i]);
      reverse(full_array_string,loop_index+1,length);
      result_count++;
    }while(1);
    free(full_array_string);  }
    void sort_string(char *str,int start,int end) {
    int i,j;
    for(i=start;i<end-1;i++){
      for(j=i+1;j<end;j++){
        if(str[j]<str[i]){
          swap_char(str[i],str[j]);
        }
      }
    }
  }
    void reverse(char *str,int start,int end){
   int i,j;
   for(i=start,j=end-1;i<j;i++,j--){
    swap_char(str[i],str[j]);   }  }
  
  评论这张
 
阅读(196)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017