- C++17 并行算法:std::execution::par
在多核处理器普及的今天,如何高效利用硬件资源成为提升软件性能的关键。C++17引入的并行算法库(ParallelAlgorithms)为开发者提供了一套标准化的并行编程接口,通过简单的策略切换即可将顺序算法转换为并行执行。本文将深入探讨C++17并行算法中最核心的执行策略std::execution::par,从基础概念到高级应用,全面解析其原理、用法及最佳实践。一、C++17并行算法概述1.1并
- 数据结构面试题编程题_您下次编程面试时应该了解的顶级数据结构
cumichun6193
数据结构链表队列pythonjava
数据结构面试题编程题byFahimulHaq通过FahimulHaqNiklausWirth,aSwisscomputerscientist,wroteabookin1976titledAlgorithms+DataStructures=Programs.瑞士计算机科学家NiklausWirth在1976年写了一本书,名为《算法+数据结构=程序》。40+yearslater,thatequatio
- 红外小目标检测算法RIPI
hie98894
目标检测目标跟踪机器学习
红外小目标检测算法RIPI,基于红外块图像,张量加权,PCADENTIST-master/algorithms/detection/NIPPS/demo_generate_nipps_data.m,1244DENTIST-master/algorithms/detection/NIPPS/nipps.m,2649DENTIST-master/algorithms/detection/NIPPS/R
- CppCon 2018 学习:A Little Order! Delving into the STL sorting algorithms
虾球xz
CppCon学习c++排序算法
记录一下一个编译器加密的算法#include#include#include#include#include#include#includenamespacedetail{//编译期伪随机key:每个字符对应不同keytemplateconstexprstd::uint8_tkey8(){returnstatic_cast((N*31+57)^0xAA);}}//namespacedetail//
- 1163 Dijkstra Sequence (30)
圣保罗的大教堂
PAT刷题图pat考试
Dijkstra'salgorithmisoneoftheveryfamousgreedyalgorithms.Itisusedforsolvingthesinglesourceshortestpathproblemwhichgivestheshortestpathsfromoneparticularsourcevertextoalltheotherverticesofthegivengraph.
- colour-demosaicing:实现多款CFA去马赛克算法的Python开源包
常琚蕙
colour-demosaicing:实现多款CFA去马赛克算法的Python开源包colour-demosaicingCFA(ColourFilterArray)DemosaicingAlgorithmsforPython项目地址:https://gitcode.com/gh_mirrors/co/colour-demosaicing项目介绍在数字图像处理领域,马赛克效应(Mosaicing)是
- C++数值算法深度解析:accumulate与max_element
景彡先生
C++进阶c++算法服务器
在C++标准库中,数值算法(NumericAlgorithms)提供了高效处理数值数据的工具。本文将深入解析两个核心数值算法——accumulate(累加求和)与max_element(最大值查找)的底层原理、核心特性及最佳实践,帮助开发者掌握这些“数据统计利器”的正确使用方式。一、accumulate:通用累加器1.1底层原理与实现迭代累加:对[first,last)区间内的元素执行累积操作,初
- 什么是 Paxos和Raft
MonkeyKing.sun
paxosraft
Raft和Paxos是两种经典的分布式一致性算法(ConsensusAlgorithms),广泛应用于数据库、分布式系统、微服务架构中,用来确保在多个节点中即使有部分节点故障,系统仍然可以就“某一值”达成一致(即:分布式共识)。它们不是区块链专属,但在联盟链、私有链或数据库复制系统中常被用来替代PoW、PBFT等共识机制。一、什么是Paxos?定义:Paxos是一种保证在部分节点失效或网络延迟时,
- C++——STL标准模板库(算法、容器、迭代器)
木木sa
c++算法java
在被引入C++之前该技术就已经存在了很长的一段时间。后来STL成为ANSI/ISOC++标准的一部分。各个C++厂商也有各自相应的模板库,这些库效率可能很高,但可移植性不一定好。STL以迭代器(Iterators)和容器(Containers)为基础,是一种泛型算法(GenericAlgorithms)库,容器的存在使这些算法有东西可以操作。迭代器(Iterators)是STL的核心,它们是泛型指
- CppCon 2016 学习:STL Algorithms - How to use them; how to write your own
虾球xz
CppCon学习c++开发语言
算法(Algorithms):用模板函数写的、通用且有用的功能块,比如排序、查找、转换等。为什么用STL算法(标准模板库算法):经过充分测试和调试,稳定可靠是编写复杂代码的基本积木使用STL算法写代码更简洁、更易读容易调试和维护方便代码复审和改进你给的例子是经典的冒泡排序实现,然后用STL的std::sort替代:std::vectorv{0,1,3,5,7,9,2,4,6,8};//手写冒泡排序
- 注意!这些CCF推荐会议已更名
爱思德学术
人工智能软件工程人机交互
针对中国计算机学会(CCF)推荐国际会议和期刊列表中部分会议和期刊的名称发生变化的情况,CCF学术工作委员会在2024年5月7日发出征集通知,开展部分更名的期刊、会议的确认和推荐列表信息的修订工作。1、WASA:CCFC类更新点:会议全称原会议信息:TheInternationalConferenceonWirelessAlgorithms,Systems,andApplications更新后会议
- ubuntu22.04和ubuntu20.04 的ssh配置不然repo init失败
Auv开心
ssh运维
ubuntu22.04Host*HostKeyAlgorithms+ssh-rsapubkeyAcceptedKeyTypes+ssh-rsaKexAlgorithms+diffie-hellman-group1-sha1ubuntu20.04ubuntu@ubuntu-HP-ProDesk-480-G7-PCI-Microtower-PC:~/zyh$cat~/.ssh/configHost*K
- 50行matlab算法,一个用matlab实现的50行的实数染色体遗传算法程序 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
kotlit
50行matlab算法
【本文属作者原创,但已发表于科学网(链接地址:http://blog.sciencenet.cn/blog-3102863-1029280.html),现稍作格式上的修该后转载,并发金币祝大家新年快乐!】1.引言遗传算法(geneticalgorithms)是一种很有意思最优化方法,常用于解决一些传统方法力所不及的多变量最优化问题。这种方法很通用,即用同样的思想可以解决很多不同的问题。只要你能对问
- GaussianPro: 3D Gaussian Splatting with Progressive Propagation(Related Work)
于初见月
paper计算机视觉
Multi-viewStereoMVSaimstoreconstructa3Dmodelfromacollectionofposedimages,whichcanbefurthercombinedwithtraditionalrenderingalgorithmstogeneratenovelviews.Traditionalmethodsexplicitlyestablishpixelcorre
- python算法和数据结构_Python中的数据结构和算法
weixin_26713521
算法数据结构pythonjavaleetcode
python算法和数据结构To至LeonardodaVinci达芬奇(LeonardodaVinci)介绍(Introduction)ThepurposeofthisarticleistogiveyouapanoramaofdatastructuresandalgorithmsinPython.ThistopicisveryimportantforaDataScientistinordertohe
- 【C++】C++ 并行算法(Parallel Algorithms)介绍
晴雨日记
C++c++开发语言
C++并行算法:原理与实现C++17引入了并行算法(ParallelAlgorithms),通过在标准库算法中增加执行策略(ExecutionPolicy),实现对多核处理器的自动并行化。一、核心原理执行策略(ExecutionPolicy):std::execution::seq:顺序执行(默认)std::execution::par:并行执行(线程级并行)std::execution::par
- 第49期:Codeforces-Round #774(Div.2)
Heptagonalwarrior
Codeforces算法
目录A.SquareCounting(tags:math;*800)B.QualityvsQuantity(tags:bruteforce;constructivealgorithms;greedy;sorting;twopointers;*800)C.FactorialsandPowersofTwo(tags:bitmasks;bruteforce;constructivealgorithms;
- Java-jwt4.4.0版本使用
Java牛马圣体
java
在SpringBoot中使用Auth0的java-jwt4.4.0版本生成JWTToken的步骤如下:1.添加依赖确保pom.xml中添加java-jwt依赖:com.auth0java-jwt4.4.02.配置JWT工具类importcom.auth0.jwt.JWT;importcom.auth0.jwt.algorithms.Algorithm;importcom.auth0.jwt.int
- DDR5舍入定义和算法Rounding Definitions and Algorithms详细讲解
zilan23
JESD79-5DDR5技术硬件工程
本文详细介绍了DDR5舍入定义和算法RoundingDefinitionsandAlgorithms。13.2舍入定义和算法--RoundingDefinitionsandAlgorithms用于计算时序参数的软件算法受到来自许多来源的舍入误差的影响。例如,一个系统可能使用一个标称频率为2200MHz的内存时钟,或者一个时钟周期为0.454545…ns。类似地,一个内存时钟频率为2800MHz的系
- Linux SSH弱密钥交换算法(Weak Key Exchange Algorithms)检查及修复
promise524
Linuxlinuxssh运维服务器tls安全威胁分析
在Linux环境中,WeakKeyExchangeAlgorithms(弱密钥交换算法)是指存在安全漏洞的算法,这些算法可能被攻击者利用进行中间人攻击或其他形式的密码学攻击。常见的弱算法包括:diffie-hellman-group1-sha1和diffie-hellman-group14-sha1一.检查当前使用的密钥交换算法1.检查SSH服务配置弱密钥交换算法通常与SSH服务相关,如支持的密钥
- Nonlinear total variation based noise removal algorithms论文阅读
青铜锁00
论文阅读#退化论文阅读图像处理
Nonlineartotalvariationbasednoiseremovalalgorithms1.论文的研究目标与意义1.1研究目标1.2实际意义2.论文的创新方法与核心公式2.1总变差最小化模型2.1.1欧拉-拉格朗日方程2.1.2演化方程(梯度下降法)2.1.3数值离散化2.2与传统方法的对比3.实验设计与结果分析3.1实验设置3.2关键数据4.未来研究方向与挑战4.1学术挑战4.2技术
- AI人工智能深度学习算法:在流体动力学中的应用
AI天才研究院
计算AI大模型企业级应用开发实战计算科学神经计算深度学习神经网络大数据人工智能大型语言模型AIAGILLMJavaPython架构设计AgentRPA
欢迎您的阅读,接下来我将为您一步步分析:AI人工智能深度学习算法在流体动力学中的应用。让我们通过多个角度来探讨这个问题。文章目录AI人工智能深度学习算法:在流体动力学中的应用AIDeepLearningAlgorithms:ApplicationsinFluidDynamics1.理解深度学习和流体动力学的基本概念1.UnderstandingtheBasicConceptsofDeepLearn
- [程序员必读计算机书籍] What is the single most influential book every programmer should read?...
AI天才研究院
架构师必知必会系列
StructureandInterpretationofComputerProgramsCodeComplete(2ndedition)bySteveMcConnellThePragmaticProgrammerTheCProgrammingLanguagebyKernighanandRitchieIntroductiontoAlgorithmsbyCormen,Leiserson,Rivest&
- 【征稿通知】OCSA 2025投稿享早鸟优惠
Dr.DarcyLuo
人工智能信息与通信网络安全计算机视觉
一、OCSA2025全称是?光电学、计算机科学与算法国际会议,会议英文是:InternationalConferenceonOptoelectronics,ComputerScienceandAlgorithms(简称:OCSA2025)二、征稿主题具体包括哪些?征稿主题主要围绕光电学、计算机科学及算法等方面,包括但不限于一下主题:光电子器件及其应用超快光电子和电光材料器件及系统测量技术激光辅助制
- 《算法导论(第4版)》阅读笔记:p32-p38
算法
《算法导论(第4版)》学习第12天,p32-p38总结,总计7页。一、技术总结1.analyzingalgorithms(1)runningtime(运行时间)worst-caserunningtime,average-caserunningtime,best-caserunning-time。2.orderofgrowth/rateofgrowth刚开始看到order的时候感觉很别扭,因为平时遇
- guacamole ssh ubuntu 22.04 连不上
wplian
linux
guacamolesshubuntu22.04连不上/etc/sshd/sshd_config最后面加两行PubkeyAcceptedKeyTypes+ssh-rsaHostKeyAlgorithms+ssh-rsa/etc/sshd/ssh_config注释去掉Ciphersaes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbcservicess
- 稀疏表示综述:A Survey of Sparse Representation: Algorithms and Applications_2015(2)
mingo_敏
PaperReadingsparsestrategyapplications
稀疏表示综述:ASurveyofSparseRepresentation:AlgorithmsandApplications_2015(2)本文地址:http://blog.csdn.net/shanglianlm/article/details/46866803VI.基于邻近算法的优化策略(PROXIMITYALGORITHMBASEDOPTIMIZATIONSTRATEGY)proximity
- c++:标准模板库 STL(Standard Template Library)
95号闪电麦坤
C/C++c++开发语言
目录一、什么是STL?二、STL三大核心组成三、容器(Containers)1.顺序容器(SequentialContainers)2.关联容器(AssociativeContainers)—基于红黑树3.无序容器(UnorderedContainers)—基于哈希表⚙️四、算法(Algorithms)五、迭代器(Iterators)️六、STL配合泛型编程的威力七、STL使用图解结构一、什么是S
- STL算法中常用知识点总结
零一长河
c++算法开发语言
C++标准模板库(STL,StandardTemplateLibrary):包含一些常用数据结构与算法的模板的C++软件库。其包含四个组件——算法(Algorithms)、容器(Containers)、仿函数(Functors)、迭代器(Iterators).示例:算法:sort(a.begin(),a.end())容器:priority_queuepque仿函数:greater()迭代器:vec
- TBB-Note-Algo-parallel_reduce
cracker:)
TBBc++
TBB学习笔记七([Algorithms.parallel_reduce])《Today’sTBB2ndEdition》parallel_reduce 先引入两个概念:归约(reduce)和前缀和(scan)。reduce通过聚合操作将多个输入值合并为一个输出值。通常和map结合使用,map:将输入数据拆分为独立片段,每个片段生成中间键值对,reducution:对相同key的value集合进行
- 对于规范和实现,你会混淆吗?
yangshangchuan
HotSpot
昨晚和朋友聊天,喝了点咖啡,由于我经常喝茶,很长时间没喝咖啡了,所以失眠了,于是起床读JVM规范,读完后在朋友圈发了一条信息:
JVM Run-Time Data Areas:The Java Virtual Machine defines various run-time data areas that are used during execution of a program. So
- android 网络
百合不是茶
网络
android的网络编程和java的一样没什么好分析的都是一些死的照着写就可以了,所以记录下来 方便查找 , 服务器使用的是TomCat
服务器代码; servlet的使用需要在xml中注册
package servlet;
import java.io.IOException;
import java.util.Arr
- [读书笔记]读法拉第传
comsci
读书笔记
1831年的时候,一年可以赚到1000英镑的人..应该很少的...
要成为一个科学家,没有足够的资金支持,很多实验都无法完成
但是当钱赚够了以后....就不能够一直在商业和市场中徘徊......
- 随机数的产生
沐刃青蛟
随机数
c++中阐述随机数的方法有两种:
一是产生假随机数(不管操作多少次,所产生的数都不会改变)
这类随机数是使用了默认的种子值产生的,所以每次都是一样的。
//默认种子
for (int i = 0; i < 5; i++)
{
cout<<
- PHP检测函数所在的文件名
IT独行者
PHP函数
很简单的功能,用到PHP中的反射机制,具体使用的是ReflectionFunction类,可以获取指定函数所在PHP脚本中的具体位置。 创建引用脚本。
代码:
[php]
view plain
copy
// Filename: functions.php
<?php&nbs
- 银行各系统功能简介
文强chu
金融
银行各系统功能简介 业务系统 核心业务系统 业务功能包括:总账管理、卡系统管理、客户信息管理、额度控管、存款、贷款、资金业务、国际结算、支付结算、对外接口等 清分清算系统 以清算日期为准,将账务类交易、非账务类交易的手续费、代理费、网络服务费等相关费用,按费用类型计算应收、应付金额,经过清算人员确认后上送核心系统完成结算的过程 国际结算系
- Python学习1(pip django 安装以及第一个project)
小桔子
pythondjangopip
最近开始学习python,要安装个pip的工具。听说这个工具很强大,安装了它,在安装第三方工具的话so easy!然后也下载了,按照别人给的教程开始安装,奶奶的怎么也安装不上!
第一步:官方下载pip-1.5.6.tar.gz, https://pypi.python.org/pypi/pip easy!
第二部:解压这个压缩文件,会看到一个setup.p
- php 数组
aichenglong
PHP排序数组循环多维数组
1 php中的创建数组
$product = array('tires','oil','spark');//array()实际上是语言结构而不 是函数
2 如果需要创建一个升序的排列的数字保存在一个数组中,可以使用range()函数来自动创建数组
$numbers=range(1,10)//1 2 3 4 5 6 7 8 9 10
$numbers=range(1,10,
- 安装python2.7
AILIKES
python
安装python2.7
1、下载可从 http://www.python.org/进行下载#wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
2、复制解压
#mkdir -p /opt/usr/python
#cp /opt/soft/Python-2
- java异常的处理探讨
百合不是茶
JAVA异常
//java异常
/*
1,了解java 中的异常处理机制,有三种操作
a,声明异常
b,抛出异常
c,捕获异常
2,学会使用try-catch-finally来处理异常
3,学会如何声明异常和抛出异常
4,学会创建自己的异常
*/
//2,学会使用try-catch-finally来处理异常
- getElementsByName实例
bijian1013
element
实例1:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/x
- 探索JUnit4扩展:Runner
bijian1013
java单元测试JUnit
参加敏捷培训时,教练提到Junit4的Runner和Rule,于是特上网查一下,发现很多都讲的太理论,或者是举的例子实在是太牵强。多搜索了几下,搜索到两篇我觉得写的非常好的文章。
文章地址:http://www.blogjava.net/jiangshachina/archive/20
- [MongoDB学习笔记二]MongoDB副本集
bit1129
mongodb
1. 副本集的特性
1)一台主服务器(Primary),多台从服务器(Secondary)
2)Primary挂了之后,从服务器自动完成从它们之中选举一台服务器作为主服务器,继续工作,这就解决了单点故障,因此,在这种情况下,MongoDB集群能够继续工作
3)挂了的主服务器恢复到集群中只能以Secondary服务器的角色加入进来
2
- 【Spark八十一】Hive in the spark assembly
bit1129
assembly
Spark SQL supports most commonly used features of HiveQL. However, different HiveQL statements are executed in different manners:
1. DDL statements (e.g. CREATE TABLE, DROP TABLE, etc.)
- Nginx问题定位之监控进程异常退出
ronin47
nginx在运行过程中是否稳定,是否有异常退出过?这里总结几项平时会用到的小技巧。
1. 在error.log中查看是否有signal项,如果有,看看signal是多少。
比如,这是一个异常退出的情况:
$grep signal error.log
2012/12/24 16:39:56 [alert] 13661#0: worker process 13666 exited on s
- No grammar constraints (DTD or XML schema).....两种解决方法
byalias
xml
方法一:常用方法 关闭XML验证
工具栏:windows => preferences => xml => xml files => validation => Indicate when no grammar is specified:选择Ignore即可。
方法二:(个人推荐)
添加 内容如下
<?xml version=
- Netty源码学习-DefaultChannelPipeline
bylijinnan
netty
package com.ljn.channel;
/**
* ChannelPipeline采用的是Intercepting Filter 模式
* 但由于用到两个双向链表和内部类,这个模式看起来不是那么明显,需要仔细查看调用过程才发现
*
* 下面对ChannelPipeline作一个模拟,只模拟关键代码:
*/
public class Pipeline {
- MYSQL数据库常用备份及恢复语句
chicony
mysql
备份MySQL数据库的命令,可以加选不同的参数选项来实现不同格式的要求。
mysqldump -h主机 -u用户名 -p密码 数据库名 > 文件
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > ba
- 小白谈谈云计算--基于Google三大论文
CrazyMizzz
Google云计算GFS
之前在没有接触到云计算之前,只是对云计算有一点点模糊的概念,觉得这是一个很高大上的东西,似乎离我们大一的还很远。后来有机会上了一节云计算的普及课程吧,并且在之前的一周里拜读了谷歌三大论文。不敢说理解,至少囫囵吞枣啃下了一大堆看不明白的理论。现在就简单聊聊我对于云计算的了解。
我先说说GFS
&n
- hadoop 平衡空间设置方法
daizj
hadoopbalancer
在hdfs-site.xml中增加设置balance的带宽,默认只有1M:
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>10485760</value>
<description&g
- Eclipse程序员要掌握的常用快捷键
dcj3sjt126com
编程
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评
《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个
程序员图书列表,目的也就是通过读书,让程序员变懒。 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可以那么勤奋,每天都孜孜不倦得
- Android学习之路
dcj3sjt126com
Android学习
转自:http://blog.csdn.net/ryantang03/article/details/6901459
以前有J2EE基础,接触JAVA也有两三年的时间了,上手Android并不困难,思维上稍微转变一下就可以很快适应。以前做的都是WEB项目,现今体验移动终端项目,让我越来越觉得移动互联网应用是未来的主宰。
下面说说我学习Android的感受,我学Android首先是看MARS的视
- java 遍历Map的四种方法
eksliang
javaHashMapjava 遍历Map的四种方法
转载请出自出处:
http://eksliang.iteye.com/blog/2059996
package com.ickes;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/**
* 遍历Map的四种方式
- 【精典】数据库相关相关
gengzg
数据库
package C3P0;
import java.sql.Connection;
import java.sql.SQLException;
import java.beans.PropertyVetoException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBPool{
- 自动补全
huyana_town
自动补全
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml&quo
- jquery在线预览PDF文件,打开PDF文件
天梯梦
jquery
最主要的是使用到了一个jquery的插件jquery.media.js,使用这个插件就很容易实现了。
核心代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.
- ViewPager刷新单个页面的方法
lovelease
androidviewpagertag刷新
使用ViewPager做滑动切换图片的效果时,如果图片是从网络下载的,那么再子线程中下载完图片时我们会使用handler通知UI线程,然后UI线程就可以调用mViewPager.getAdapter().notifyDataSetChanged()进行页面的刷新,但是viewpager不同于listview,你会发现单纯的调用notifyDataSetChanged()并不能刷新页面
- 利用按位取反(~)从复合枚举值里清除枚举值
草料场
enum
以 C# 中的 System.Drawing.FontStyle 为例。
如果需要同时有多种效果,
如:“粗体”和“下划线”的效果,可以用按位或(|)
FontStyle style = FontStyle.Bold | FontStyle.Underline;
如果需要去除 style 里的某一种效果,
- Linux系统新手学习的11点建议
刘星宇
编程工作linux脚本
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。
一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了 Linu
- hibernate dao层应用之HibernateDaoSupport二次封装
wangzhezichuan
DAOHibernate
/**
* <p>方法描述:sql语句查询 返回List<Class> </p>
* <p>方法备注: Class 只能是自定义类 </p>
* @param calzz
* @param sql
* @return
* <p>创建人:王川</p>
* <p>创建时间:Jul