解題思路:
兩個(gè)數(shù) a 和 b 簸州, 如果 ab < ba 那么ab就是排序的最小數(shù)厉亏,a應(yīng)該在左邊。
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
using namespace std;
// 定義排序規(guī)則
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];
// 將整形數(shù)組轉(zhuǎn)換成 字符串?dāng)?shù)組
for(i=0; i<num; i++)
{
stringstream stream;
stream<<pArray[i];
stream>>pStrArray[i];
}
// 利用sort函數(shù) 和 compare 規(guī)則進(jìn)行排序
sort(pStrArray, pStrArray+num, compare);
// 打印出這個(gè)最小數(shù)字的字符串形式
for(i=0; i<num; i++)
cout<<pStrArray[i];
cout<<endl;
// 釋放這個(gè)指針
delete[] pStrArray;
}