zoukankan      html  css  js  c++  java
  • 数据结构与算法(C++)之swap交换

    swap交换:swap是几乎所有的排序的最基础部分,代码如下:

    #include <iostream>

    using namespace std;

    int main()
    {
    int a,b,tmp;
    a=1;
    b=10;
    cout <<"a="<< a<<",b="<<b<< endl;
    tmp=a;
    a=b;
    b=tmp;
    cout <<"a="<<a<<",b="<<b<< endl;
    return 0;
    }

    为了将其做成函数进行调用,进行了一个失败的案例:

    #include <iostream>
    //失败的例子
    using namespace std;
    //定义交换函数
    void swap(int x,int y);

    int main()
    {
    int a,b;
    a=1;
    b=10;
    cout <<"a="<< a<<",b="<<b<< endl;
    //调用交换函数
    //a和b是如何传递的
    //c++按值传递:把a拷贝一个传递进去,b相同
    swap(a,b);//传递参数的方式
    cout <<"a="<< a<<",b="<<b<< endl;
    return 0;

    }
    //失败案例
    //交换函数内容
    void swap(int x,int y){
    int tmp;
    tmp=x;
    x=y;
    y=tmp;
    }

    学习视频得到了理解,后面进行尝试了几个成功的案例:

    #include <iostream>
    using namespace std;
    void swap(int *px,int *py);

    int main(){

    int a,b;
    a=1;
    b=10;
    cout<<"传递指针的方法:"<<endl;
    cout <<"a="<< a<<",b="<<b<< endl;
    //拷贝指针(地址)
    swap(&a,&b);

    cout <<"a="<< a<<",b="<<b<< endl;
    return 0;

    }
    void swap(int *px,int *py){

    int tmp;

    tmp=*px;
    *px=*py;
    *py=tmp;

    }

    #include <iostream>
    //c语言中最常用的就是宏定义
    #define SWAP(x,y,t) ((t)=(x),(x)=(y),(y)=(t))
    using namespace std;
    int main()
    {
    int a,b,tmp;
    a=1;
    b=10;
    cout<<"使用宏定义函数:"<<endl;
    cout <<"a="<< a<<",b="<<b<< endl;
    SWAP(a,b,tmp);
    cout <<"a="<< a<<",b="<<b<< endl;
    return 0;
    }

    #include <iostream>

    using namespace std;

    void swap(int &x,int &y);

    int main()
    {
    int a,b;
    a=1;
    b=10;
    cout<<"传引用:"<<endl;
    cout <<"a="<< a<<",b="<<b<< endl;

    swap(a,b);
    cout <<"a="<< a<<",b="<<b<< endl;
    return 0;
    }
    //引用就是别名
    void swap(int &x,int &y)
    {
    int tmp;
    tmp=x;
    x=y;
    y=tmp;
    }

    #include <iostream>
    //使用自带的模板进行交换
    using namespace std;
    int main()
    {
    int a,b;
    a=1;
    b=10;
    cout <<"使用std::swap函数"<<endl;
    cout <<"a="<< a<<",b="<<b<< endl;
    std::swap(a,b);
    cout <<"a="<< a<<",b="<<b<< endl;
    return 0;
    }

    就这一个小小的swap就这么多的写法,当然最好用的还是调用C++自带的函数库啦。

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    no one and you
  • 相关阅读:
    Objective-c 语法,类/属性/函数(iOS学习笔记,从零开始。)
    设置UIButton 对齐方式
    iOS Runtime[转载]
    使用带粒子效果的 CAEmitterLayer
    使用maskView设计动画效果
    url、href、src 详解
    良好的JavaScript编码风格(语法规则)
    关于闭包
    盒子模型详解
    git入门笔记汇总——(廖雪峰博客git入门)
  • 原文地址:https://www.cnblogs.com/wslQAQ/p/12320736.html
Copyright © 2011-2022 走看看