class Solution { public: static bool compare(int a, int b) { string a_str = to_string(a); string b_str = to_string(b); return a_str + b_str > b_str + a_str; } string largestNumber(vector<int>& nums) { // 使用比较函数进行排序 sort(nums.begin(), nums.end(), compare); // 拼接所有数字并返回结果 string ans = ""; for (int num : nums) { ans += to_string(num); } // 特判输出结果为 0 的情况 if (ans[0] == '0') { return "0"; //如果以0开头,则返回字符串“0” } return ans; } };属于哪种排序算法
时间: 2024-02-10 12:09:54 浏览: 55
这个代码使用的是自定义排序算法,具体来说是使用快速排序的内置函数 `sort` 进行排序。通过定义静态的成员函数 `compare` 来实现自定义排序的逻辑,将 `sort` 函数的第三个参数传入自定义的比较函数即可。
该比较函数的逻辑是将两个整数转换成字符串,然后将它们拼接起来,比较拼接后的字符串的大小关系,返回较大的那个数字。这种排序算法的思路是将数组中的所有数字按照拼接后的大小关系进行排序,最终拼接成一个最大的数字。
因此,这个排序算法属于基于比较的排序算法,具体来说是基于字符串比较的排序算法。时间复杂度为 O(nlogn),主要的时间消耗在排序算法上。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pptx](https://img-home.csdnimg.cn/images/20241231044947.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)