美文网首页
把数组排成最小数

把数组排成最小数

作者: BeijingIamback | 来源:发表于2016-08-26 21:58 被阅读114次

    解题思路:
    两个数 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;
    
    }
    
    

    相关文章

      网友评论

          本文标题:把数组排成最小数

          本文链接:https://www.haomeiwen.com/subject/ihvzsttx.html