W
e
l
c
o
m
e
: )

sort函数基础用法

如有不对的地方望读者可以指出

一、sort函数的作用

可以对一个数组进行排序

默认从小到大排序,也可以自定义排序规则。
最重要的是:代码非常短!!!
时间复杂度:\(\Theta(n\log{n})\)

二、sort函数使用方式

sort(begin,end,cmp);

其中 begin 为排序开始位置,end 为排序结束位置,cmp 为排序规则。
注意:beginend 均指的是数组中第几个元素,并不是数组下标。


举个例子

#include<bits/stdc++.h>
using namespace std;
int a[12]={0,5,3,6,8,2,4,8,0,1,2,4}; 
int main(){
	sort(a+1,a+11+1);
	for(int i=1;i<=11;i++)
		cout<<a[i]<<" ";
	return 0;
}

输出:0 1 2 2 3 4 4 5 6 8 8
上述代码的含义是定义一个长为 \(12\) 的数组 \(a\),元素分别为 0,5,3,6,8,2,4,8,0,1,2,4,然后对第二个元素(下标为 \(1\))到第\(12\)(下标为 \(11\))个元素进行排序,最后输出。

三、排序规则函数

排序规则函数一般为 cmp (你也可以用别的)全拼为compare,意为比较。
排序规则函数是一个布尔型函数,它必定且只有两个参数(两个参数数据类型相同),它必须得有返回值。
一般格式是:

bool cmp(定义第一个参数,定义第二个参数){
  排序规则;
}

调用方式是:

sort(a+1,a+n+1,cmp);

当排序规则函数返回值为 \(0\) 时,调换两个参数在被排序数组的位置;否则,不调换两个参数在被排序数组的位置;

排序规则函数在调用时只需要写函数名,不需要写大括号。


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

这是一个典型的可以将数组里的数从大到小排序的排序规则函数。
如果 \(a>b\),那么返回值为 \(1\),不调换两个参数在数组之中的位置;如果 \(a<b\),那么返回值为 \(0\),调换两个参数在数组中的位置。

四、sort函数的应用

1.结构体

posted @ 2024-03-24 16:28  YYM_CAFE  阅读(92)  评论(0)    收藏  举报