快排法(模版型)与归并法
来源:互联网 发布:淘宝众筹失败会怎么样 编辑:程序博客网 时间:2024/06/06 21:55
大部分排序用冒泡可以解决,但是在冒泡排序中双层for循环所有的循环次数不能超过10的8次方,以此运用快排法可较快的解决问题;
以100000个数为例
for(i=1;i<=100000-2;i++)
for(j=1;j<=100000-2-i;j++)
{
.......;
}
共需要循环100000*100000次 所以肯定超时;
找女朋友
Time Limit: 15MS Memory limit: 65536K
题目描述
山东理工大学有很多学生,当然也有很多美女,机械实验班的学委(外号:大王八)很想找个女朋友,但他想找个身高和自己相配的女生坐女朋友,现有理工大N个美女的身高数据,但由于N的值较大,为了尽快找到合适的女友,大王八想请你帮他完成这N个美女的身高排序,按降序排列。
输入
输入包括两行,第一行是一个正整数N(N<=1000000),表示理工大共N个美女。第二行有N个正整数分别表示N位美女的身高,每个正整数的值不会超过10^9。 (输入数据之间会用空格隔开)
输出
输出只有一行,为这N个数的降序序列,数与数之间用空格隔开。
示例输入
51 3 2 5 4
示例输出
5 4 3 2 1
快排法
#include<stdio.h>#include<stdlib.h>#define MAX 10000001int a[MAX];
void px(int l,int r);int qp(int l,int r);int main(){ int i,n;
scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a[i]); } px(1,n); for(i=n;i>=1;i--) { printf("%d",a[i]); if(i!=1)printf(" "); else printf("\n"); } return 0;}void px(int l,int r){ if(l>=r)return 0; int mid=qp(l,r); px(l,mid-1); px(mid+1,r);}int qp(int l,int r){ int bj=a[l]; while(l<r) { while(bj<=a[r]&&l<r) { r--; } a[l]=a[r]; while(bj>=a[l]&&l<r) { l++; } a[r]=a[l];
} a[r]=bj; return r;}
归并法
#include<stdio.h>int a[1100001];int c[1100001];void hebing(int l,int r,int ll,int rr){ int i=l; int j=ll; int k=l; for(i,j,k;i<=r&&j<=rr;) { if(a[i]<a[j]) { c[k]=a[i]; i++; k++; } else { c[k]=a[j]; j++; k++; } } if(i<=r) for(i;i<=r;i++)c[k++]=a[i]; if(j<=rr) for(j;j<=rr;j++)c[k++]=a[j]; for(i=l;i<=rr;i++) a[i]=c[i];} void paixu(int l,int r){ if(l>=r)return ; int mid=(l+r)/2; paixu(l,mid); paixu(mid+1,r); hebing(l,mid,mid+1,r);}int main(){ int i; int n; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a[i]); } paixu(1,n); for(i=n;i>=1;i--) { printf("%d",a[i]); if(i!=1)printf(" "); else printf("\n"); } return 0;}
0 0
- 快排法(模版型)与归并法
- 归并排序(模版)
- 归并排序模版
- [模版] 归并排序
- hdu 4417,poj 2104 划分树(模版)归并树(模版)
- 归并排序模版(分治思想)
- 模版与泛型编程
- C++ Primer笔记(十四)模版与泛型编程
- 【C++ Primer】第16章 模版与泛型模版
- 归并与归并排序
- 分治法与归并排序
- 分治法与归并排序
- 函数模版与类模版
- 函数模版与模版函数
- 归并排序 例题即模版 XMU1328 hdu3743
- 模板与泛型编程之实现(归并排序)
- 第十六章:模版与泛型程序设计
- C++ 模版与泛型编程
- C#word(2007)操作类--新建文档、添加页眉页脚、设置格式、添加文本和超链接、添加图片、表格处理、文档格式转化
- DBA 的那些事
- 新手应该如何学习SEO优化
- 生产者与消费者
- Least Common Multiple
- 快排法(模版型)与归并法
- Eclipse安装SVN插件方式简明介绍
- Android App监听软键盘按键的三种方式
- 第五篇《三只小猪——后篇》
- 春運旅客在開車前退票量比重大幅減少
- C,C++表达式求值顺序
- ORA-04063: view "GFMIS.UNIFYLOGIN" has errors
- MAC 远程 windows7 验证可用
- android流媒体框架介绍