在做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);
}

最新文章

  1. 烦人的win10的输入法
  2. 【翻译四】java-并发之线程暂停
  3. C#中扩展StringBuilder支持链式方法
  4. Python的深拷贝与浅拷贝
  5. MySQL与Oracle 差异比较之七其它
  6. COCOS2DX2.2.2 创建CCEditBox输入框架实现文本及密码输入
  7. JSP SMARTUPLOAD组件:上传文件时同时获取表单参数
  8. DedeCms 建站随笔(一)
  9. C/C++招聘的一些感受和经验【转】
  10. Win10图片打开方式没有“Windows照片查看器”,如何找回?
  11. windows SSH Tunnel实施日记
  12. 【esri-loader】帮助文档翻译 part1 是什么,怎么安装,为什么要用它
  13. .net读取excel数据到DataSet中
  14. Spring Boot基础:Spring Boot简介与快速搭建(1)
  15. Centos7+ASP.Net Core 运行
  16. nginx 更改用户组
  17. Mac上反编译Android apk安装包
  18. STA分析(五) parastics
  19. 如何添加设备UDID到开发者中心
  20. 高阶函数 实现sum(2)(3) 柯里化

热门文章

  1. Java开发环境笔记
  2. 一脸懵逼学习oracle
  3. [转] 对Array.prototype.slice.call()方法的理解
  4. 在PHP中使用AES加密算法加密数据
  5. JavaScript动态加载CSS和JS文件
  6. 【转】android:paddingLeft与android:layout_marginLeft的区别
  7. XXE (XML External Entity Injection) 外部实体注入漏洞案例分析
  8. Android ADB命令教程二——ADB命令详解
  9. UOJ#23. 【UR #1】跳蚤国王下江南 仙人掌 Tarjan 点双 圆方树 点分治 多项式 FFT
  10. 011 pandas的常见操作