C++算法一:交换算法
最基础的算法:交换(swap)
常见的的交换算法主要有以下几种:
using namespace std;
void swap1(int *px, int *py);//方法1,传指针,传指针就是传地址
#define SWAP2(x,y,t)((t)= (x),(x) = (y),(y) = (t))//方法2,是C语言中使用最多的方法,对各种类型的数据都可以进行交换,宏定义函数,宏函数一般为大写,小括号括起来
void swap3(int &px, int &py);//传引用的方法3,c++ 传引用,引用就是别名
//方法4,std c++标准库的swap()
template<class T> void swap5(T& a,T& b); //方法五,模板参数交换函数,是C++中使用最多的交换函数。
int main()
{
int a,b,temp;
a = 10;
b = 1;
cout <<"a = "<<a<<",b = "<<b<<endl;
//拷贝的是地址
//swap1(&a,&b);
//SWAP2(a,b,temp);
//swap3(a,b); //传引用,引用就是别名
//std::swap(a,b);
swap5(a,b);
cout <<"a = "<<a<<",b = "<<b<<endl;
system("pause");
return 0;
}
void swap1(int *px, int *py)
{
//C++传引用代替传指针,是对指针的简化,传参数的时候传的是引用(别名),交换的时候不用指针
int temp;
temp = *px;
*px= *py;
*py = temp;
}
void swap3(int &px, int &py)
{
int temp;
temp = px;
px= py;
py = temp;
}
template<class T>
void swap5(T& a,T& b)
{
int temp;
temp = a;
a= b;
b = temp;
}
C++算法一:交换算法相关推荐
- 大数据处理算法一:BitMap算法
腾讯面试题:给20亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中并且所耗内存尽可能的少? 解析:bitmap算法就好办多了 所谓b ...
- Solr相似度算法一:Lucene TF-IDF 相关性算分公式
Solr相似度算法一:Lucene TF-IDF 相关性算分公式 Lucene在进行关键词查询的时候,默认用TF-IDF算法来计算关键词和文档的相关性,用这个数据排序 TF:词频,IDF:逆向文 ...
- 深度学习AI美颜系列---AI美颜磨皮算法一
深度学习AI美颜系列---AI美颜磨皮算法一 转自:https://blog.csdn.net/trent1985/article/details/80661230 首先说明一点,为什么本结内容是&q ...
- 数据结构与算法一:时间频度和时间复杂度
数据结构系列博客涉及内容: 一.初识数据结构和算法: 1.数据结构: 数据结构:是相互之间存在一种或多种关系的数据元素的集合 研究什么:数据的逻辑结构与物理结构以及它们之间的相互关系 数据结构包括:线 ...
- 操作系统之FIFO算法和LRU算法
首先在做题前,我们要简单理解FIFO算法和LRU算法的本质意思,英文全拼一般在教材上基本都会有,这里简述为FIFO算法即为先进先出算法,计算表格多以从下往上写的顺序来看,LRU算法大致为近期最少未使用 ...
- BF算法和KMP算法
给定两个字符串S和T,在主串S中查找子串T的过程称为串匹配(string matching,也称模式匹配),T称为模式.这里将介绍处理串匹配问题的两种算法,BF算法和KMP算法. BF算法 (暴力匹配 ...
- Algorithm:C++语言实现之字符串相关算法(字符串的循环左移、字符串的全排列、带有同个字符的全排列、串匹配问题的BF算法和KMP算法)
Algorithm:C++语言实现之字符串相关算法(字符串的循环左移.字符串的全排列.带有同个字符的全排列.串匹配问题的BF算法和KMP算法) 目录 一.字符串的算法 1.字符串的循环左移 2.字符串 ...
- 操作系统之存储管理——FIFO算法和LRU算法
操作系统之进程调度--优先权法和轮转法(附上样例讲解) 操作系统之银行家算法-详解流程及案例数据 操作系统之多线程编程-读者优先/写者优先详解 操作系统之存储管理--FIFO算法和LRU算法 操作系统 ...
- php计算器使用方法,php--计算器的算法实现(-)
php--计算器的算法实现(-) $exp='3*9*9'; echo $exp.'='; $numStack=new MyStack(); $opeStack=new MyStack(); $ind ...
最新文章
- tweak 项目 快速搭建CocoaAsyncSocket(建连、断开、重连、心跳、通用请求)
- linux 物理内存统计,说说free命令 + Linux可用内存统计方法
- Git record
- php new对象 调用函数,关于JS中new调用函数的原理介绍
- Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步
- JAVA API在线中文文档地址链接
- 安营扎寨【我与51CTO的故事】
- 代码生成工具随笔(3)---占领最后一块黄金宝地
- 使用Hive和iReport进行大数据分析
- [ACM_动态规划] hdu 1176 免费馅饼 [变形数塔问题]
- python之UnittTest模块
- 聚宽 get_price 多个股票数据_上证指数(000001)股票历史数据,下载上证指数(000001历史数据_股票股市历史数据下载股票数据网...
- JCreator中怎样带参数运行程序,如何添加JDBC驱动程序
- 最经典的大数据案例解析(附代码)
- Jeesite进行打包(打成war包)
- debian9 使用cups远程管理打印服务
- matlab解薛定谔方程,定态薛定谔方程的MATLAB求解(一)
- 为程序员讨回失去的午觉,我被投诉了,差点吃官司
- 软件测试学习(基础篇)— —第5天:JS基础
- php xmp,在jpeg中编写XMP元数据(使用PHP) – 使用单个或多个rdf:描述块
热门文章
- UML类图操作(一)
- 基于css和jQuery实现轮播图
- 助AI研究社群发出内建18种预先训练模型工具
- Tomcat - 常用配置
- 33 个 JavaScript 核心概念系列(四): == 与 ===
- 【Spark Summit East 2017】提升Python与Spark的性能和互操作性
- Mysql学习笔记(六)增删改查
- 职场中的那点事--小领导大智慧
- Eclipse ,Ant编译 jbpm.war包
- android http文件上传,Android Http文件上传方法和实践