当前位置: 首页 > news >正文

自己开通一个网站需要多少钱我找伟宏篷布我做的事ko家的网站

自己开通一个网站需要多少钱,我找伟宏篷布我做的事ko家的网站,律师事务所网站建设,济南企业建站公司问题描述:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{12, 567},则输出这两个能排成的最小数字12567。请给出解决问题的算法,并证明该算法。 思路:先将…

 问题描述:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{12,  567},则输出这两个能排成的最小数字12567。请给出解决问题的算法,并证明该算法。

      思路:先将整数数组转为字符串数组,然后字符串数组进行排序,最后依次输出字符串数组即可。这里注意的是字符串的比较函数需要重新定义,不是比较a和b,而是比较ab与 ba。如果ab < ba,则a < b;如果ab > ba,则a > b;如果ab = ba,则a = b。比较函数的定义是本解决方案的关键。

      证明:为什么这样排个序就可以了呢?简单证明一下。根据算法,如果a < b,那么a排在b前面,否则b排在a前面。可利用反证法,假设排成的最小数字为xxxxxx,并且至少存在一对字符串满足这个关系:a > b,但是在组成的数字中a排在b前面。根据a和b出现的位置,分三种情况考虑:

      (1)xxxxab,用ba代替ab可以得到xxxxba,这个数字是小于xxxxab,与假设矛盾。因此排成的最小数字中,不存在上述假设的关系。

      (2)abxxxx,用ba代替ab可以得到baxxxx,这个数字是小于abxxxx,与假设矛盾。因此排成的最小数字中,不存在上述假设的关系。

      (3)axxxxb,这一步证明麻烦了一点。可以将中间部分看成一个整体ayb,则有ay < ya,yb < by成立。将ay和by表示成10进制数字形式,则有下述关系式,这里a,y,b的位数分别为n,m,k。

        关系1: ay < ya => a * 10^m + y < y * 10^n + a => a * 10^m - a < y * 10^n - y => a( 10^m - 1)/( 10^n - 1) < y

        关系2: yb < by => y * 10^k + b < b * 10^m + y => y * 10^k - y < b * 10^m - b => y < b( 10^m -1)/( 10^k -1) 

        关系3: a( 10^m - 1)/( 10^n - 1) < y < b( 10^m -1)/( 10^k -1)  => a/( 10^n - 1)< b/( 10^k -1) => a*10^k - a < b * 10^n - b =>a*10^k + b < b * 10^n + a => a < b

       这与假设a > b矛盾。因此排成的最小数字中,不存在上述假设的关系。

       综上所述,得出假设不成立,从而得出结论:对于排成的最小数字,不存在满足下述关系的一对字符串:a > b,但是在组成的数字中a出现在b的前面。从而得出算法是正确的。

      参考代码:

//重新定义比较函数对象
struct compare
{bool operator() (const string &src1, const string &src2){string s1 = src1 + src2;string s2 = src2 + src1;return s1 < s2;   //升序排列,如果改为s1 > s2则为逆序排列}
};
//函数功能 : 把数组排成最小的数
//函数参数 : pArray为数组,num为数组元素个数  
//返回值 :   无
void ComArrayMin(int *pArray, int num)
{int i;string *pStrArray = new string[num];for(i = 0; i < num; i++) //将数字转换为字符串{	stringstream stream;stream<<pArray[i];stream>>pStrArray[i];}sort(pStrArray, pStrArray + num, compare()); //字符串数组排序for(i = 0; i < num; i++) //打印字符串数组cout<<pStrArray[i];cout<<endl;delete [] pStrArray;
}
http://www.yayakq.cn/news/181608/

相关文章:

  • 淄博网站制作公司托管语言 网站开发
  • 公司网站公司哪家好wordpress 安装过程
  • 人工做流量的网站做一元购物网站
  • 电子商务网站的建设方法手机建公司网站
  • 网站建设公司创意织梦做网站教程
  • php做网站的重点洛阳青峰网络让人去培训
  • 新余公司做网站家具建设网站
  • 怎样做网站发布信息网站怎么做搜索引擎优化
  • 浩森宇特北京做网站wordpress 原生中文主题
  • 网站开发平台目录南通关键词优化软件
  • 大连网站建设腾讯大厦网站的建设费计入无形资产吗
  • 为什么做网站更新找代做海报的网站
  • 网站建站价格标准wordpress商城主题开发
  • aspx网站开发 案例易网官方网站
  • 网站主机英文为网站做IPhone客户端
  • 网站的建设服务中心浏览器网址导航大全
  • 小说网站怎么建设的附近哪里有广告公司
  • 音响厂家东莞网站建设西安小程序建设公司
  • 石家庄制作公司网站莱西网站制作联赛与超
  • 建设网站的基础知识wordpress自动评论seo工具
  • 网站建设 wix源码商城网站源码
  • 怎样做网站二维码湖南建筑信息平台
  • php做网站技术方案云主机购买
  • 聊城九洲建设有限公司网站企业网站模板seo
  • 自助下单网站怎么做设计工作室简介
  • 网站域名的作用漯河网页制作
  • ps网站建设教程微信自己怎么弄小程序
  • 南昌建设网站49图库下浏览器
  • 国外物流公司网站模板百度搜索排名优化
  • 秀山网站建设端午节手抄报获奖微信怎么推广