获得一个数组中所有元素进行的全排列,获得其中最小的数字
来源:互联网 发布:上海优化公司hxwlkj 编辑:程序博客网 时间:2024/06/05 21:11
现有一个数组int a[]={32,3,65};我们将这个数组中的所有数字进行排序
#include<iostream>using namespace std;//把数组排成最小的数int a[]={2,56,1};char tmp[256]={0};char dst[256]={0};void pailie(char* pstr,char*begin){if(*begin=='\0'){memset(tmp,0,256);for(int i=0;i<sizeof(a)/sizeof(int);i++){char num[256]={0};sprintf(num,"%d",a[*(pstr+i)-48]);strcpy(tmp+strlen(tmp),num);}if(strcmp(dst,tmp)>0){memset(dst,0,256);strcpy(dst,tmp);}}else{for(char* str=begin;*str!='\0';str++){char tmp=*str;*str=*begin;*begin=tmp;pailie(pstr,begin+1);tmp=*str;*str=*begin;*begin=tmp;}}}int main(){int length=sizeof(a)/sizeof(int);char* pstr=new char[length+1];memset(pstr,0,length+1);memset(pstr,'0',length);//初始化dstfor(int i=0;i<length;i++){char Nustr[256]={0};sprintf(Nustr,"%d",a[i]);strcpy(dst+strlen(dst),Nustr);pstr[i]+=i;}pailie(pstr,pstr);cout<<dst<<endl;return 0;}
这个过程利用了将数字转换为字符进行对比的较好的方式,同时也不用判断溢出等,是一种较好的方法啊
0 0
- 获得一个数组中所有元素进行的全排列,获得其中最小的数字
- 获得一个数组的全排列
- 获得一个字符串的全排列
- 对一个字符数组的元素进行全排列
- 一个数字数组中所有的排列(java)
- 在控制台上输入一个字符串,将其中夹杂的字母去除,只剩数字,然后对对这些数字进行全排列,输出全排列结果
- 在控制台上输入一个字符串,将其中夹杂的字母去除,只剩数字,然后对对这些数字进行全排列,输出全排列结果
- JAVA获得一个数组的指定长度的排列
- PHP中如何获得数组中指定元素的前一个或后一个元素
- 数组元素的全排列
- 一个字符串既含有字母又含有数字且字母和数字随意排列如何取出其中所有的数字并进行排序
- 获得当前图形中所有实体的最小包围盒
- 其中获得一分的
- 将数组中的元素排列成一个最小的数
- java输出一个数组的所有排列形式(全排序)
- 求一个数组的全排列,所有组合
- java中获得数组中最小的数
- 求出数组中所有字符的全排列
- 谁获得最高奖学金
- 远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
- 根据数据的父子关系创建树形结构并实现遍历
- SMS 短信发送程序
- 论文笔记:Chaotic Invariants of Lagrangian Particle Trajectories for Anomaly Detection in Crowded Scenes
- 获得一个数组中所有元素进行的全排列,获得其中最小的数字
- 【树链剖分】[BZOJ 4196]软件包管理器
- Java内存泄露的理解与解决
- openCV使用心得
- log4j生成有日期的日志文件名
- [Android5 系列二] 1. 全实例之控件(Widget)
- 与人为善,于己为善
- 面向对象设计六大基本原则
- 虚拟机Ubuntu14.04+Caffe+libsvm对数据集进行分类