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

排序---快速排序

前言

个人小记


一、代码


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define MAX_ARR 100000
#define swap(a,b)\
{\__typeof(a) __c=a;\a=b,b=__c;\
}
#define TEST(func ,arr,l,r)\
{\int n=r-l;\printf("test:%s\n",#func);\int *t=(int *)malloc(sizeof(int )*n);\memcpy(t,arr,n);\long long a=clock();\func(t,l,r);\long long b=clock();\if(check(t,n))printf("OK %lldms\n",(b-a)*1000/CLOCKS_PER_SEC);\else printf("FAIL\n");\free(t);\
}int check(int *t,int n)
{for(int i=1;i<n;i++){if(t[i-1]>t[i])return 0;}return 1;
}int* init_arr(int n)
{int* arr=(int*)malloc(sizeof(int)*n);for(int i=0;i<n;i++)arr[i]=rand()%100000;return arr;
}void quick_sort(int *arr,int l,int r)
{if(r-l<=2){if(r-l<=1)return ;if(arr[l]>arr[r-1])swap(arr[l],arr[r-1]);return ;}int a=l,b=r-1,z=arr[a];while(b>a){while(b>a&&arr[b]>z)b--;if(b>a)arr[a++]=arr[b];while(b>a&&arr[a]<z)a++;if(b>a)arr[b--]=arr[a];}arr[a]=z;quick_sort(arr,l,a);quick_sort(arr,a+1,r);return ;
}int main()
{srand((unsigned)time(0));int *arr=init_arr(MAX_ARR);TEST(quick_sort,arr,0,MAX_ARR);free(arr);return 0;
}

二、测试结果

test:quick_sort
OK 6ms

相关文章:

  • msfconsole利用Windows server2008cve-2019-0708漏洞入侵
  • c#未能加载基类System错误 这台计算机上缺少此项目引用的 NuGet 程序包
  • HikariCP连接池初识
  • 基于机器学习的锂电池RUL SOH预测
  • 【JavaScript脚本宇宙】表格大变身:探秘JavaScript库的数据表格魔法
  • 设计模式七大原则-单一职责原则SingleResponsibility
  • 卡码网用友提前批笔试 | 121 大数减法、122 滑动窗口最大值、117 软件架构
  • Selenium IDE 工具
  • Python框架scrapy有什么天赋异禀
  • 技术前沿 |【大模型InstructBLIP进行指令微调】
  • PostgreSQL的视图pg_tables
  • 【Java】Java流中的API
  • 通用信息提取数据预处理
  • MySQL——索引下推
  • Mysql基础-多表查询
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Android组件 - 收藏集 - 掘金
  • Angular 4.x 动态创建组件
  • ES6之路之模块详解
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JavaScript对象详解
  • java小心机(3)| 浅析finalize()
  • Mybatis初体验
  • vue中实现单选
  • 从伪并行的 Python 多线程说起
  • 大主子表关联的性能优化方法
  • 复习Javascript专题(四):js中的深浅拷贝
  • 后端_ThinkPHP5
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 听说你叫Java(二)–Servlet请求
  • 王永庆:技术创新改变教育未来
  • 用jquery写贪吃蛇
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​插件化DPI在商用WIFI中的价值
  • ‌JavaScript 数据类型转换
  • #图像处理
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $jQuery 重写Alert样式方法
  • (c语言)strcpy函数用法
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (undone) MIT6.824 Lecture1 笔记
  • (二)pulsar安装在独立的docker中,python测试
  • (剑指Offer)面试题34:丑数
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (推荐)叮当——中文语音对话机器人
  • (一)Java算法:二分查找
  • (转) 深度模型优化性能 调参
  • (转)程序员技术练级攻略
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (总结)Linux下的暴力密码在线破解工具Hydra详解