解题思路:
两个数 a 和 b , 如果 ab < ba 那么ab就是排序的最小数,a应该在左边。
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
using namespace std;
// 定义排序规则
bool compare(const string& str1, const string &str2)
{
string s1=str1+str2;
string s2=str2+str1;
return s1<s2;
}
// 排序算法
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函数 和 compare 规则进行排序
sort(pStrArray, pStrArray+num, compare);
// 打印出这个最小数字的字符串形式
for(i=0; i<num; i++)
cout<<pStrArray[i];
cout<<endl;
// 释放这个指针
delete[] pStrArray;
}