快速排序 [Qsort]
2024-10-11 08:37:25
在做USACO1.4 等差数列的时候,我发现如果用结构体+sort就会超时,用二维数组+qsort就能AC,所以为了不忘记Quick Sort,我还是把代码贴出来以备以后要看吧。
void qsort(int l,int r)
{
int i=l,j=r,t,mid=b[(l+r)/2];
do
{
while(b[i]<mid)i++;
while(b[j]>mid)j--;
if(i<=j)
{
t=b[i];b[i]=b[j];b[j]=t;
i++;j--;
}
}
while(i<=j);
if(l<j)qsort(l,j);
if(i<r)qsort(i,r);
再贴一下Quick Sort多关键字排序
【这里b数组优先,a数组是第二因素】
void qsort(int l,int r)
{
int i=l,j=r,t,mid1=b[(l+r)/2],mid2=a[(l+r)/2];
do
{
while(b[i]<mid1||(b[i]==mid1&&a[i]<mid2))i++;
while(b[j]>mid1||(b[j]==mid1&&a[j]>mid2))j--;
if(i<=j)
{
t=a[i];a[i]=a[j];a[j]=t;
t=b[i];b[i]=b[j];b[j]=t;
i++;j--;
}
}while(i<=j);
if(l<j)qsort(l,j);
if(i<r)qsort(i,r);
}
最新文章
- 烦人的win10的输入法
- 【翻译四】java-并发之线程暂停
- C#中扩展StringBuilder支持链式方法
- Python的深拷贝与浅拷贝
- MySQL与Oracle 差异比较之七其它
- COCOS2DX2.2.2 创建CCEditBox输入框架实现文本及密码输入
- JSP SMARTUPLOAD组件:上传文件时同时获取表单参数
- DedeCms 建站随笔(一)
- C/C++招聘的一些感受和经验【转】
- Win10图片打开方式没有“Windows照片查看器”,如何找回?
- windows SSH Tunnel实施日记
- 【esri-loader】帮助文档翻译 part1 是什么,怎么安装,为什么要用它
- .net读取excel数据到DataSet中
- Spring Boot基础:Spring Boot简介与快速搭建(1)
- Centos7+ASP.Net Core 运行
- nginx 更改用户组
- Mac上反编译Android apk安装包
- STA分析(五) parastics
- 如何添加设备UDID到开发者中心
- 高阶函数 实现sum(2)(3) 柯里化
热门文章
- Java开发环境笔记
- 一脸懵逼学习oracle
- [转] 对Array.prototype.slice.call()方法的理解
- 在PHP中使用AES加密算法加密数据
- JavaScript动态加载CSS和JS文件
- 【转】android:paddingLeft与android:layout_marginLeft的区别
- XXE (XML External Entity Injection) 外部实体注入漏洞案例分析
- Android ADB命令教程二——ADB命令详解
- UOJ#23. 【UR #1】跳蚤国王下江南 仙人掌 Tarjan 点双 圆方树 点分治 多项式 FFT
- 011 pandas的常见操作