博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
把数组排成最小的数
阅读量:6715 次
发布时间:2019-06-25

本文共 927 字,大约阅读时间需要 3 分钟。

题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。

举例:输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。

答:算法如下,证明略。

答:

#include "stdafx.h"#include 
#include
#include
using namespace std;//把int转化为stringstring int2str(int i) { string s; stringstream ss(s); ss << i; return ss.str();}int cmp(const void *one,const void *two){ string strone = *(string*)one; string strtwo= *(string*)two; string stronetwo = strone + strtwo; string strtwoone = strtwo + strone; return stronetwo > strtwoone;}int _tmain(int argc, _TCHAR* argv[]){ int arr[] = {
323, 324, 777, 432, 876, 565, 9, 228}; int length = sizeof(arr)/sizeof(arr[0]); string *str = new string[length]; for (int i = 0; i < length; i++) { str[i] = int2str(arr[i]); } qsort(str, length, sizeof(str[0]), cmp); for (int i = 0; i < length; i++) { cout<

运行界面如下:

转载地址:http://ebkmo.baihongyu.com/

你可能感兴趣的文章
算法与数据结构(十) 总结
查看>>
这部在豆瓣和IMDb都曾得到高分的电影,让我震撼......
查看>>
Json解析框架之Gson详解
查看>>
支持生产阻塞的线程池
查看>>
[Hadoop]Reducer总是能复用为Combiner?
查看>>
自动化与机器人
查看>>
ESP8266 OTA之浏览器更新
查看>>
专访光鉴科技CEO朱力:打破苹果垄断,自研芯片打造低成本3D视觉解决方案
查看>>
docker的下载
查看>>
redis几种数据导出导入方式
查看>>
中间件万里行?不远万里来相会?| 阿里中间件Aliware 开启全国赋能之旅
查看>>
对抗思想与强化学习的碰撞-SeqGAN模型原理和代码解析
查看>>
多Git账户的Git使用
查看>>
iOS脚本自动编译静态包/静态库
查看>>
并发安全的 ConcurrentHashMap 实现原理详解
查看>>
【MySQL疑难杂症】如何将树形结构存储在数据库中(方案三 Closure Table)
查看>>
初识 Vue(26)---( Vue 中多个元素或组件的过渡动画)
查看>>
HyperLedger Fabric 1.2 区块链技术定义(2.1)
查看>>
Sam Hartman 当选 Debian 社区领导人
查看>>
CentOS无缝升级nginx[完整命令及自动升级脚本]
查看>>