C++入门——排序
来源:互联网 发布:程序员鄙视链图 编辑:程序博客网 时间:2024/05/17 15:37
给大家介绍一下排序算法
最容易想到的 : 每次找最大的放在序列最后
n^2 光荣爆炸
——>分治
将序列每次一分为二,递归下去,分别排好两部分
复杂度 :: nlogn
(归并排序)
快速排序:
将序列分为一边全部比一边的两部分
这样就不用合并了。。。
归并排序实现:
int a[10005],b[10005];void Fsort(int l,int r){ if(l==r)return; int mid=(l+r)/2; Fsort(l,mid),Fsort(mid+1,r); memcpy(b+l,a+l,sizeof(int)*(r-l+1)); int i=l,j=mid+1,cnt=l; while(i<=mid&&j<=r){ if(b[i]<b[j])a[cnt++]=b[i++]; else a[cnt++]=b[j++]; } if(i>mid) while(j<=r)a[cnt++]=b[j++]; if(j>r) while(i<=mid)a[cnt++]=b[i++];}
STL函数:
sort <---> stable_sortsort(a+1,a+n+1);stable_sort(a+1,a+n+1);
还可以自定义比较函数
bool cmp(int i,int j){ return i > j;}sort(a+1,a+n+1,cmp);
具体请参见ClassFOO
1 0
- C/C++——排序
- c语言入门:排序算法
- C语言入门:字符串排序
- C++入门——排序
- 排序——选择排序(C++)
- 排序——插入排序(C++)
- 排序——冒泡排序(C++)
- 排序——希尔排序(C++)
- 排序——快速排序(C++)
- 排序——堆排序(C++)
- C——冒泡排序、快速排序,选择排序
- C#入门(9)两个排序算法
- 【C入门向】冒泡排序详解
- C#——冒泡排序
- C#——快速排序
- C#——选择排序
- C++——选择排序
- C#——快速排序
- 3.偏头痛杨的Java入门教学系列之表达式&运算符&关键字&标识符&表达式篇
- 查找代码的中文插件
- 理解Flink(一):数据流编程模型
- springMVC 访问过程
- 若干题目2
- C++入门——排序
- 定制Spring Boot的Banner
- CentOS7下安装solr服务器
- 微信公众号开发---模板消息url
- 你是不是想要个ideal汉化包?我这里有啊~
- ThinkPHP redirect 页面重定向使用详解与实例
- JQuery Ajax操作
- Windows 10 禁止远程连接
- Jenkins + Git + Maven + tomcat集成环境(Maven安装)