经典算法学习——交换两个整型数据_PHP教程

php中文网
发布: 2016-07-12 08:54:04
原创
1156人浏览过

经典算法学习——交换两个整型数据

交换两个数是在编程中经常会用到的,当然我们可以用很常见的方式来实现,也可以各种稀奇古怪的方法来做。这里我们用三种比较常规的方式来做,太过古怪的方法个人觉得没有太大必要。实例代码上传至:https://github.com/chenyufeng1991/swapfunction

(1)使用指针

实现如下:

Swapface人脸交换
Swapface人脸交换

一款创建逼真人脸交换的AI换脸工具

Swapface人脸交换 45
查看详情 Swapface人脸交换
//
//  main.c
//  SwapFunc
//
//  Created by chenyufeng on 16/2/3.
//  Copyright © 2016年 chenyufengweb. All rights reserved.
//

#include <stdio.h>

void swap01(int *a,int *b);

int main(int argc, const char * argv[]) {

    int a = 1;
    int b = 2;
    printf("交换前:a = %d,b = %d\n",a,b);
    swap01(&a, &b);
    printf("交换后:a = %d,b = %d\n",a,b);

    return 0;
}

//最常规的交换;
void swap01(int *a,int *b){

    int temp;
    temp = *a;
    *a = *b;
    *b = temp;
}
</stdio.h>
登录后复制
(2)不借用第三个数
//
//  main.c
//  SwapFunc
//
//  Created by chenyufeng on 16/2/3.
//  Copyright &copy; 2016年 chenyufengweb. All rights reserved.
//

#include <stdio.h>

void swap02(int *a,int *b);

int main(int argc, const char * argv[]) {

    int a = 1;
    int b = 2;
    printf("交换前:a = %d,b = %d\n",a,b);
    swap02(&a, &b);
    printf("交换后:a = %d,b = %d\n",a,b);

    return 0;
}

//不用第三个数;
void swap02(int *a,int *b){

    *a = *a + *b;
    *b = *a - *b;
    *a = *a - *b;
}
</stdio.h>
登录后复制

(3)异或

//
//  main.c
//  SwapFunc
//
//  Created by chenyufeng on 16/2/3.
//  Copyright &copy; 2016年 chenyufengweb. All rights reserved.
//

#include <stdio.h>

/**
 *  由于我这里用的是C语言,所以不能使用引用。C++中可以使用引用。
 引用的函数定义:
 void swap04(int &a,int &b){
 ...
 }
 */

void swap03(int *a,int *b);

int main(int argc, const char * argv[]) {

    int a = 1;
    int b = 2;
    printf("交换前:a = %d,b = %d\n",a,b);
    swap03(&a, &b);
    printf("交换后:a = %d,b = %d\n",a,b);

    return 0;
}

//异或,使用二进制位进行计算;
void swap03(int *a,int *b){

    *a = *a ^ *b;
    *b = *b ^ *a;
    *a = *a ^ *b;
}
</stdio.h>
登录后复制
上面三种实现大家应该是应该闭着眼睛都能写出来的,也是能够完全理解的。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1121831.htmlTechArticle经典算法学习——交换两个整型数据 交换两个数是在编程中经常会用到的,当然我们可以用很常见的方式来实现,也可以各种稀奇古怪的方...
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号