java穷举排列组合,穷举排列组合算法

更新时间:2023-05-07 16:37:15 阅读: 评论:0

java穷举排列组合,穷举排列组合算法//
//  main.m
//  test
//
//  Created by mac on 16-3-1.
//  Copyright (c) 2016年 _MyCompany_. All rights rerved.
//
#import
#include
#include
#include
static const char alphabet[] =
"abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"0123456789";
static const int alphabetSize = sizeof(alphabet) - 1;
void bruteImpl(char* str, int index, int maxDepth)
{
for (int i = 0; i < alphabetSize; ++i)
{
str[index] = alphabet[i];
if (index == maxDepth - 1) printf("%s\n", str);
el bruteImpl(str, index + 1, maxDepth);
}
}
void bruteSequential(int maxLen)
{
char* buf = malloc(maxLen + 1);
for (int i = 1; i <= maxLen; ++i)
{
memt(buf, 0, maxLen + 1);
bruteImpl(buf, 0, i);
}
free(buf);
}
staticconstintBUFFLEN=1024*100;voidbrute2(intmaxLen){ char*indices =malloc(maxLen +1);char*terminal
=indices+maxLen;char*printbuff =malloc(BUFFLEN);char*pbend =&printbuff[BUFFLEN-1];char*b =printbuff;*pbend ='\0';++indices[0];char*p;while(*terminal ==0){ // print valuefor(p =indices;*p;++p);for(--p ;p >=indices;--p){
*b++=alphabet[*p-1];if(b ==pbend){ fwrite(printbuff,1,b-printbuff,stdout);b =printbuff;}}*b++='\n';if(b ==pbend){ fwrite(printbuff,1,b-printbuff,stdout);b =printbuff;}// increment valuesintcarry =1;for(++p ;carry;++p)

本文发布于:2023-05-07 16:37:15,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/549543.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:排列组合   穷举   算法
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图