zoukankan      html  css  js  c++  java
  • 算法题汇总

    1. 交换两个整型变量值,要求不定义新变量作为临时变量


    • 算法一

    算法实现

    template <class T>
    void g_SwapInteger(T &a, T &b)
    {
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;
    }

    算法证明

    a0 = a                 b0 = b
    a1 = a0 ^ b0 = a ^ b         b1 = b0 = b
    a2 = a1 = a ^ b          b2 = a1 ^ b1 = a ^ b ^ b = a
    a3 = a2 ^ b2 = a ^ b ^ a = b   b3 = b2 =a

    • 算法二

    ▶ 算法实现

    template <class T>
    void g_SwapInteger(T &a, T &b)
    {
        a = a - b;
        b = a + b;
        a = b - a;
    }

    ▶ 算法证明

    a0 = a,              b0 = b
    a1 = a0 - b0 = a - b,        b1 = b0 = b
    a2 = a1 = a - b,          b2 = a1 + b1 = a - b + b = a
    a3 = b2 - a2 = a - (a - b) = b,   b3 = b2 = a

  • 相关阅读:
    js的alert乱码问题
    (6)select语句
    (5)视图
    (4)索引
    (3)操作数据库
    (2)MySQL数据类型
    (1)MySQL概述
    RocketMQ安装使用
    uniapp打包h5
    面试必问 如何保证缓存与数据库的一致性
  • 原文地址:https://www.cnblogs.com/heartchord/p/algorithm.html
Copyright © 2011-2022 走看看