交换函数SWAP的三总实现方法

1、借助辅助变量的temp

  1、引用形参

    void swap(int &a,int &b)//引用类型方法

  {

    int temp;

    temp=a;

    a=b;

    b=temp;

  }

  2指针类型形参

  void swap(*a,*b)

{

  int temp;

  temp=*a;

  *a=*b;

  *b=temp;

}

2、无形参

 1、异 运算

void swap(int &a, int &b)
{
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
}  

  2 加减法

  

void swap(int &a, int &b)
{
    a = a + b;
    b = a - b;
    a = a - b;
}  

原文地址:https://www.cnblogs.com/taogepureyeahman/p/9091808.html

时间: 2024-08-30 16:55:17

交换函数SWAP的三总实现方法的相关文章

交换函数swap的三种实现方法

http://blog.csdn.net/GarfieldEr007/article/details/48314295 本文采用三种方式实现两个数之间的交换,分别是①借助辅助变量temp的swap函数,②采用加减法的swap函数 ,③使用异或运算的swap函数. 现在直奔主题: 1.借助辅助变量temp的swap函数 I.引用类型形参 [cpp] view plain copy void swap(int &a, int &b) //引用类型方式 { int temp; //辅助变量 te

输入6个人的成绩放入到一个一维数组中,然后打印出平均分,最后按成绩 从大到小打印。三个功能(输入是一个函数,求平均分是一个函数,排序是一个 函数)都用函数实现,最后在main方法中调用。

/*5.输入6个人的成绩放入到一个一维数组中,然后打印出平均分,最后按成绩从大到小打印.三个功能(输入是一个函数,求平均分是一个函数,排序是一个函数)都用函数实现,最后在main方法中调用.*/ #include <stdio.h> int inputScore(){ int score; scanf("%d",&score); return score;} double avg(int scores[],int length){ int i,score = 0;

求字符串长度函数实现的三种方法

/* Date: 10/03/19 12:49 Description: 求字符串长度函数实现的三种方法*/ #include<stdio.h> int strlen1(char *s);int strlen2(char *s);int strlen3(char *s); int main(void) { char str[]="The function to test my length."; printf("The length1 is:%d\n",

函数常见的写法及调用方法整理

我们平时在阅读别人的代码的时候,总能看到别人在写函数的时候,有各种不同的写法及调用方法,今天就总结下我所遇到过的函数常见的写法及调用方法. 一.函数声明 // 函数的写法 function sum(a, b) { return a + b; } // 调用 sum(1,2); // 3  二.函数表达式 // 函数的写法 var sum = function (a, b) { return a + b; } // 调用 sum(2, 3); // 5 三.将方法作为一个对象 // 作为对象方法,

C++中交换函数的几种写法与辨析

#include <iostream> using namespace std; //错误方法, //这里是把主函数的a, b进行复制然后交换 //函数执行完毕后释放复制的a, b, //而没有保存a,b交换后的值 void fun_one(int x, int y) { int temp; temp = y; y = x; x = temp; } //正确的方法之一 //使用指针的交换 void fun_two(int *x, int *y) { int c = 0; c = *x; *x

创建二叉树的两种方法以及三种遍历方法

二叉树的两种创建方法和三种遍历方法 这里的两种创建方法,一种值得是 数据结构上面的创建方法: 方法一 代码如下: 二叉树的结构定义如下: typedef struct BinaryTreeNode{ char value; struct BinaryTreeNode *left; struct BinaryTreeNode *right; }; - c语言版 void CreateBinaryTree(BinaryTreeNode **T) { char data; scanf("%d"

谈谈vector容器的三种遍历方法

说明:本文仅供学习交流,转载请标明出处,欢迎转载! vector容器是最简单的顺序容器,其使用方法类似于数组,实际上vector的底层实现就是采用动态数组.在编写程序的过程中,常常会变量容器中的元素,那么如何遍历这些元素呢?本文给出三种遍历方法. 方法一:采用下标遍历 由于vector容器就是对一个动态数组的包装,所以在vector容器的内部,重载了[]运算符,函数原型为:reference operator [] (size_type n);所以我们可以采用类似于数组的方式来访问vector容

自定义交换函数

#include<stdio.h> #define N 20 void Swap(int *temp,int *cont) /*定义一个交换函数*/ { int var; var=*temp,*temp=*cont,*cont=var; return; } int main() { int a[N],i,j; for(i=0;i<N;i++) scanf("%d",&a[i]); for(i=1;i<N;i++){ for(j=0;j<N-i;j+

js oop中的三种继承方法

JS OOP 中的三种继承方法: 很多读者关于js opp的继承比较模糊,本文总结了oop中的三种继承方法,以助于读者进行区分. <继承使用一个子类继承另一个父类,子类可以自动拥有父类的属性和方法.(继承的两方,发生在两个类之间)> 一.通过object实现继承 1:定义父类 function Parent(){} 2:定义子类 funtion Son(){} 3:通过原型给Object对象添加一个扩展方法. Object.prototype.customExtend = function(p