#include <iostream>
#include <string>
#include <algorithm>
#include <sstream>
using namespace std;
void SortMax(int* arr, int len);
bool StringCompare(string s1, string s2);
string toString(int val);
int main()
{
int arr[5] = {4, 94, 9, 14, 91};
int len = 5; //sizeof(arr)/sizeof(int);
cout<<"Original array"<<endl;
for(int i = 0; i < len; i++)
cout<<arr[i]<<" ";
cout<<endl;
SortMax(arr, len);
cout<<"Sorted array"<<endl;
for(int i = 0; i < len; i++)
cout<<arr[i]<<" ";
cout<<endl;
}
void SortMax(int* arr, int len)
{
string strarr[len];
for(int i = 0; i < len; i++)
strarr[i] = toString(arr[i]);
std::sort(strarr, strarr+len, StringCompare);
for(int i = 0; i < len; i++)
{
arr[i] = atoi(strarr[i].c_str());
}
}
bool StringCompare(string s1, string s2)
{
if (atoi((s1 + s2).c_str()) > atoi((s2 + s1).c_str()))
return true;
else
return false;
}
string toString(int val)
{
stringstream ss;
ss<<val;
return ss.str();
}
数组排列,使得数组的值最大
最新推荐文章于 2021-09-23 20:36:52 发布