本博客主要素材是观看算法视频的个人笔记,内容有些粗率,当作算学习的记录,后续会不断完善,欢迎交流。

最基础的算法:交换(swap)

常见的的交换算法主要有以下几种:

void swap(int x,int y) -这种方法不行
方法一:void swap(int *px,int *py)
方法二:#define swap(x,y,t)((t)=(x),(x)=(y),(y)=(t))
方法三:void swap(int &x,int &y)
方法四:std::swap( a, b)
方法五:template<class T>viod swap(T& x, T& b)
方法一和方法二是c语言中的方法,方法三、方法四和方法五是C++中的方法,C++也可以使用方法一和方法二,C++可以使用C中的方法,方法二和方法五分别是c语言和c++最常用的方法。C++使用传递引用(方法三)代替C语言中的传递指针(方法1)相当于是对C语言的一种简化。
#include<iostream>
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++算法一:交换算法相关推荐

  1. 大数据处理算法一:BitMap算法

     腾讯面试题:给20亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中并且所耗内存尽可能的少?  解析:bitmap算法就好办多了 所谓b ...

  2. Solr相似度算法一:Lucene TF-IDF 相关性算分公式

     Solr相似度算法一:Lucene TF-IDF 相关性算分公式 Lucene在进行关键词查询的时候,默认用TF-IDF算法来计算关键词和文档的相关性,用这个数据排序 TF:词频,IDF:逆向文 ...

  3. 深度学习AI美颜系列---AI美颜磨皮算法一

    深度学习AI美颜系列---AI美颜磨皮算法一 转自:https://blog.csdn.net/trent1985/article/details/80661230 首先说明一点,为什么本结内容是&q ...

  4. 数据结构与算法一:时间频度和时间复杂度

    数据结构系列博客涉及内容: 一.初识数据结构和算法: 1.数据结构: 数据结构:是相互之间存在一种或多种关系的数据元素的集合 研究什么:数据的逻辑结构与物理结构以及它们之间的相互关系 数据结构包括:线 ...

  5. 操作系统之FIFO算法和LRU算法

    首先在做题前,我们要简单理解FIFO算法和LRU算法的本质意思,英文全拼一般在教材上基本都会有,这里简述为FIFO算法即为先进先出算法,计算表格多以从下往上写的顺序来看,LRU算法大致为近期最少未使用 ...

  6. BF算法和KMP算法

    给定两个字符串S和T,在主串S中查找子串T的过程称为串匹配(string matching,也称模式匹配),T称为模式.这里将介绍处理串匹配问题的两种算法,BF算法和KMP算法. BF算法 (暴力匹配 ...

  7. Algorithm:C++语言实现之字符串相关算法(字符串的循环左移、字符串的全排列、带有同个字符的全排列、串匹配问题的BF算法和KMP算法)

    Algorithm:C++语言实现之字符串相关算法(字符串的循环左移.字符串的全排列.带有同个字符的全排列.串匹配问题的BF算法和KMP算法) 目录 一.字符串的算法 1.字符串的循环左移 2.字符串 ...

  8. 操作系统之存储管理——FIFO算法和LRU算法

    操作系统之进程调度--优先权法和轮转法(附上样例讲解) 操作系统之银行家算法-详解流程及案例数据 操作系统之多线程编程-读者优先/写者优先详解 操作系统之存储管理--FIFO算法和LRU算法 操作系统 ...

  9. php计算器使用方法,php--计算器的算法实现(-)

    php--计算器的算法实现(-) $exp='3*9*9'; echo $exp.'='; $numStack=new MyStack(); $opeStack=new MyStack(); $ind ...

最新文章

  1. tweak 项目 快速搭建CocoaAsyncSocket(建连、断开、重连、心跳、通用请求)
  2. linux 物理内存统计,说说free命令  + Linux可用内存统计方法
  3. Git record
  4. php new对象 调用函数,关于JS中new调用函数的原理介绍
  5. Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步
  6. JAVA API在线中文文档地址链接
  7. 安营扎寨【我与51CTO的故事】
  8. 代码生成工具随笔(3)---占领最后一块黄金宝地
  9. 使用Hive和iReport进行大数据分析
  10. [ACM_动态规划] hdu 1176 免费馅饼 [变形数塔问题]
  11. python之UnittTest模块
  12. 聚宽 get_price 多个股票数据_上证指数(000001)股票历史数据,下载上证指数(000001历史数据_股票股市历史数据下载股票数据网...
  13. JCreator中怎样带参数运行程序,如何添加JDBC驱动程序
  14. 最经典的大数据案例解析(附代码)
  15. Jeesite进行打包(打成war包)
  16. debian9 使用cups远程管理打印服务
  17. matlab解薛定谔方程,定态薛定谔方程的MATLAB求解(一)
  18. 为程序员讨回失去的午觉,我被投诉了,差点吃官司
  19. 软件测试学习(基础篇)— —第5天:JS基础
  20. php xmp,在jpeg中编写XMP元数据(使用PHP) – 使用单个或多个rdf:描述块

热门文章

  1. UML类图操作(一)
  2. 基于css和jQuery实现轮播图
  3. 助AI研究社群发出内建18种预先训练模型工具
  4. Tomcat - 常用配置
  5. 33 个 JavaScript 核心概念系列(四): == 与 ===
  6. 【Spark Summit East 2017】提升Python与Spark的性能和互操作性
  7. Mysql学习笔记(六)增删改查
  8. 职场中的那点事--小领导大智慧
  9. Eclipse ,Ant编译 jbpm.war包
  10. android http文件上传,Android Http文件上传方法和实践