sort复习
2025-01-22 09:31:56
发布于:北京
#include<bits/stdc++.h>
using namespace std;
int s[10005], n, k;
bool cmp(int x, int y) {
return x > y;
}
int main() {
sort(s + 1, s + n + 1); //升 优先级
sort(s + 1, s + n + 1, cmp); //降
//数组下标 x -- y 排序
int x, y;
sort(s + x, s + y + 1);
//求第 k 大,第 k 小问题
//求第 k 大问题
sort(s + 1, s + n + 1, cmp);
cout << s[k];
//求第 k 小问题
sort(s + 1, s + n + 1);
cout << s[k];
//字符本质上是整数,可以比较 --> 可以排序
char cs[105] = "bca";
sort(cs + 0, cs + 3);
//string 字符串可以通过 >、<、>=、<=、==、!=进行字典序比较,所以也可以进行排序
string ss[105] = {"abc", "bcd", "aaa"};
sort(ss + 0, ss + 3);
//排序去重
sort(s + 1, s + n + 1);
int c[105], l = 0;
c[++l] = s[1];
for (int i = 2; i <= n; i++) {
if (s[i] != s[i - 1]) {
c[++l] = s[i];
}
}
for (int i = 1; i <= l; i++) {
cout << c[i] << " ";
}
//最小差值问题
//排完序后,最小差值只可能是两个相邻元素的差值
sort(s + 1, s + n + 1);
int minn = 2e9;
for (int i = 1; i < n; i++) {
if(minn > s[i+1] - s[i]){
minn = s[i+1] - s[i];
}
}
return 0;
}
这里空空如也
有帮助,赞一个