C++ 正整数序列排序:个位数优先,相同个位数按大小排序
C++ 正整数序列排序:个位数优先,相同个位数按大小排序
本篇文章提供 C++ 代码实现,用于对给定的正整数序列进行排序。排序规则为:首先按照个位数从小到大排序,个位数相同的再按照本身大小从小到大排序。
输入格式
第一行1个整数 n, 表示序列的大小。( 0 < n ≤ 1000)
第二行 n 个正整数,表示序列的每个数,每个数不大于 100000000。
输出格式
输出按照题目要求排序后的序列
C++ 代码实现
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// 比较函数,按照个位数从小到大排序,个位数相同的按照本身大小从小到大排序
bool compare(int a, int b) {
if (a % 10 != b % 10) {
return a % 10 < b % 10;
} else {
return a < b;
}
}
int main() {
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
// 使用自定义的比较函数进行排序
sort(nums.begin(), nums.end(), compare);
// 输出排序后的序列
for (int i = 0; i < n; i++) {
cout << nums[i] << " ";
}
return 0;
}
代码解释
- 使用
compare函数定义排序规则,先比较个位数,再比较本身大小。 - 使用
sort函数对nums数组进行排序,并传入自定义比较函数compare。 - 输出排序后的序列。
原文地址: https://www.cveoy.top/t/topic/qjKA 著作权归作者所有。请勿转载和采集!