当前位置: 首页 > news >正文

快排

  1 #include<stdio.h>
  2 
  3 
  4 
  5 /*******************************
  6                    快排
  7                    *************************************/
  8 int quicksort_up(int a[],int f1,int f2)
  9 {
 10     int i=f1-1,j=f2,v=a[f2],t;
 11     for(;;)
 12     {
 13         while(a[++i]<v);
 14         while(a[--j]>v)
 15         {
 16             if(j==f1)
 17                 break;
 18         }
 19         if(i>=j)break;
 20         t=a[i];
 21         a[i]=a[j];
 22         a[j]=t;
 23     }
 24     t=a[i];
 25     a[i]=a[f2];
 26     a[f2]=t;
 27     return i;
 28 }
 29 int quicksort_down(int a[],int f1,int f2)
 30 {
 31     int i=f1,j=f2+1,v=a[f1],t;
 32     for(;;)
 33     {
 34         while(a[--j]<v);
 35         while(a[++i]>v)
 36         {
 37             if(i==f2)
 38                 break;
 39         }
 40         if(i>=j)break;
 41         t=a[i];
 42         a[i]=a[j];
 43         a[j]=t;
 44     }
 45     t=a[j];
 46     a[j]=a[f1];
 47     a[f1]=t;
 48     return j;
 49 }
 50 
 51 
 52 void partition_up(int a[],int first,int last)
 53 {
 54     int i;
 55     if(first<last)
 56     {
 57         i=quicksort_up(a,first,last);
 58         partition_up(a,first,i-1);
 59         partition_up(a,i+1,last);
 60     }
 61 }
 62 
 63 
 64 void partition_down(int a[],int f1,int f2)
 65 {
 66     int i;
 67     if(f1<f2)
 68     {
 69         i=quicksort_down(a,f1,f2);
 70         partition_down(a,f1,i-1);
 71         partition_down(a,i+1,f2);
 72     }
 73 }
 74 
 75 int main()
 76 {
 77 
 78     int n=5,a[15];
 79     int i;
 80     for(i=0;i<n;i++)
 81     {
 82         scanf("%d",&a[i]);
 83     }
 84 
 85     partition_up(a,0,n-1);
 86 
 87     for(i=0;i<5;i++)
 88     {
 89         printf("%d ",a[i]);
 90     }
 91     printf("\n");
 92 
 93     partition_down(a,0,n-1);
 94 
 95     for(i=0;i<n;i++)
 96     {
 97 
 98         printf("%d ",a[i]);
 99 
100     }
101     printf("\n");
102     return 0;
103 }

 

相关文章:

  • PHP——大话PHP设计模式——PSR-0规范
  • oracle EBS dba SQL scripts
  • Fundamental Components Of An Event-Driven Archi...
  • 移动周报:十款最实用的Android UI设计工具
  • implicit declaration of function 'copy_from_user'
  • 灯标技术--向服务器发送信息而不需要服务器返回信息
  • 虚基类虚继承
  • 导出无法正常启动的VMware虚拟机中的文件
  • CentOS 下的邮件通知
  • Linux内核--usb子系统的分析
  • 安装db2 提示不是有效的win32应用程序?
  • 建站须知
  • Java中如何实现类似C++结构体的二级排序
  • 防暴力破解 Fail2Ban之python
  • JMETER 2.10的安装
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • css布局,左右固定中间自适应实现
  • CSS实用技巧干货
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • MYSQL 的 IF 函数
  • MySQL-事务管理(基础)
  • PHP那些事儿
  • Python实现BT种子转化为磁力链接【实战】
  • vue脚手架vue-cli
  • Vue学习第二天
  • 编写符合Python风格的对象
  • 从零开始在ubuntu上搭建node开发环境
  • 基于HAProxy的高性能缓存服务器nuster
  • 开源SQL-on-Hadoop系统一览
  • 聊聊sentinel的DegradeSlot
  • 排序算法学习笔记
  • 前端面试题总结
  • 巧用 TypeScript (一)
  • 如何进阶一名有竞争力的程序员?
  • 微信小程序设置上一页数据
  • 微信小程序--------语音识别(前端自己也能玩)
  • 想使用 MongoDB ,你应该了解这8个方面!
  • NLPIR智能语义技术让大数据挖掘更简单
  • 阿里云移动端播放器高级功能介绍
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 通过调用文摘列表API获取文摘
  • #、%和$符号在OGNL表达式中经常出现
  • $.each()与$(selector).each()
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (libusb) usb口自动刷新
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (办公)springboot配置aop处理请求.
  • (二)学习JVM —— 垃圾回收机制
  • (十) 初识 Docker file
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .Net Web项目创建比较不错的参考文章
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net反编译工具