1.排序:把一堆杂乱无章的数据变得有序

2.sort()函数 (1)对单一变量进行从小到大排序 sort(要排序数组的第一个数的地址,要排序数组的最后一个数的后面一个地址)

比如 f[10], 要排2,5,sort(f + 2, f + 6); 0~n-1: sort(f, f + n) 1~n : sort(f + 1, f + 1 + n)

sort(f.begin() + 2, f.begin() + 6)

(2)对单一变量进行从大到小排序

sort(要排序数组的第一个数的地址,要排序数组的最后一个数的后面一个地址, 比较函数cmp)

cmp函数一定是bool类型,且参数一定是两个,参数类型为数组的变量类型

特点:原数组中,a一定在b的前面,cmp返回真时,不交换a和b,否则交换a和b

bool cmp(int a, int b)
{
	return a > b;
}

(3)对结构体进行排序

#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
struct stu{
	int num;
	string name;
	int math;
	int chi;
	int sum;
};
//总分高的在前面,总分一样的语文好的在前面
//语文也一样,数学排前面,所有都一样,学号小的在前面 

stu f[N];
bool cmp(stu a, stu b) {
	if(a.sum == b.sum && a.chi == b.chi && a.math == b.math) return a.num < b.num;
	if(a.sum == b.sum && a.chi == b.chi) return a.math > b.math;
	if(a.sum == b.sum) return a.chi > b.chi;
	return a.sum > b.sum;
}
 
int main()
{
	int n;
	cin >> n;
	for(int i = 1; i <= n; i++)
	{
		cin >> f[i].name >>f[i].num >> f[i].chi >> f[i].math;
		f[i].sum = f[i].chi + f[i].math;
	}
	
	sort(f + 1, f + 1 + n, cmp);
	for(int i = 1; i <= n; i++)
	{
		cout << i << ":" <<f[i].name << " " << f[i].sum << endl;
	}
	
}

14 条评论

  • @ 2024-9-16 1:02:01

    ( ' - ' )

    • @ 2024-8-28 15:28:10

      6

      • @ 2024-8-28 15:27:49

        5 2 1 3 2 4

        • @ 2024-8-28 15:27:44

          5 2 1 3 2 4

          • @ 2024-8-26 13:29:41

            ......................................................................................

            • @ 2024-8-25 15:36:30

              6

              👍 3
              ❤️ 3
              🕊️ 3
              😄 3
              🤡 3
              🌿 3
              😕 3
              🤣 3
              👀 3
              🍋 3
              🤔 3
              👎 3
              • @ 2024-8-25 15:02:20

                老师不愧是老师,就是这么厉害

                🤡 3
                👀 3
                😕 2
                👎 2
                😄 1
                • @ 2024-8-25 15:02:00

                  你说的对,但是原神(手动划线)但是c++是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言

                  🤡 4
                  🤣 2
                  • @ 2024-8-25 15:01:31

                    你们都给我坐下

                    👎 4
                    🤡 4
                  • @ 2024-8-25 15:01:19

                    好吃

                    🤡 3
                    👀 2
                    👍 2
                    • @ 2024-8-25 15:00:45

                      朱老师超绝 啊呸 超绝SORT函数

                      🤡 3
                      🤔 3
                      • @ 2024-8-25 15:00:04

                        非常不错,孩子吃的很开心

                        👍 4
                        🤡 4
                        • @ 2024-8-25 14:59:43

                          ( •̀ ω •́ )

                          🤡 3
                          • @ 2024-8-25 14:59:15

                            老师真的非常Good!!!

                            🤡 4
                            • 1