#include<algorithm>中的sort算法

  1、sort函数的时间复杂度为n*log2(n),执行效率较高。

  2、sort函数的形式为sort(first,end,method)//其中第三个参数可选。

  3、若为两个参数,则sort的排序默认是从小到大,见如下例子



#include<iostream>

#include<algorithm>

using namespace std;

int main()

{

  int a[10]={9,6,3,8,5,2,7,4,1,0};

  for(int i=0;i<10;i++)

  cout<<a[i]<<endl;

  sort(a,a+10); //可以看出,两个参数为均地址,a为起始,a+10为结束位置  排序几个数就+几;

  for(int i=0;i<10;i++)

  cout<<a[i]<<endl;

  return 0;

}

#include<iostream>

#include<algorithm>

using namespace std;

int main()

{

  int a[10]={9,6,3,8,5,2,7,4,1,0};

  for(int i=0;i<10;i++)

  cout<<a[i]<<endl;

  sort(a,a+10); //可以看出,两个参数为均地址,a为起始,a+10为结束位置

  for(int i=0;i<10;i++)

  cout<<a[i]<<endl;

  return 0;

}


 

4、若为三个参数,则需要写一个cmp函数(此名称cmp可变),用于判断是从小到大排序还是从大到小排序。   

  (1)需要排序的数组直接为int类型,则见如下例子(从大到小排序)

 

#include <algorithm>
#include <iostream>
using namespace std;

bool com(int a,int b)

{

 return a>b;

}

int main()

{

 int a[10]={9,6,3,8,5,2,7,4,1,0};

 for(int i=0;i<10;i++)

 cout<<a[i]<<endl;

 sort(a,a+10,com);//在这里就不需要对com函数传入参数

 for(int i=0;i<10;i++)

 cout<<a[i]<<endl;

 return 0;

}


 

(2)如果想依照一个结构体内的一个int型的属性参数进行排序,则见如下例子(从大到小排列)


#include <iostream>
#include <algorithm>

using namespace std;

struct node {
	int a;
    //.........
	//
};

bool cmp(node x,node y)
{
     if(x.a != y.a) 
		 return (x.a > y.a);
}

void main(void)
{
	int i;
	node N_t[5];
	for(i=0; i<5; i++)
	{
		cin>>N_t[i].a;
	}
	sort(N_t, N_t+5, cmp);
	for(i=0; i<5; i++)
	{
		cout<<N_t[i].a;
	}
	
}   


 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值