`
searchje
  • 浏览: 3457 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

C语言swap不申请额外空间交换二个值

c 
阅读更多

#include <stdio.h> 
 
void swap(int *x, int *y) 

    *x ^= *y; 
    *y ^= *x; 
    *x ^= *y; 

 
void swap2(int *x, int *y) 

    *x = *x + *y; 
    *y = *x - *y; 
    *x = *x - *y; 

 
void swap3(int *x, int *y) 

    *x = *x - *y; 
    *y = *x + *y; 
    *x = *y - *x; 

 
 
int main() 

    int a, b; 
    a = 100 , b = 200
    printf("a:%d\tb:%d\n", a, b); 
 
    swap(&a, &b); 
    printf("a:%d\tb:%d\n", a, b); 
 
    swap2(&a, &b); 
    printf("a:%d\tb:%d\n", a, b); 
 
    swap3(&a, &b); 
    printf("a:%d\tb:%d\n", a, b); 
 
    return 0

 
分享到:
评论

相关推荐

    c语言swap(a,b)值交换的4种实现方法

    在C语言中,交换两个变量`a`和`b`的值是一个常见的操作,通常用于各种算法和数据处理。本文将介绍四种不同的方法来实现`swap(a, b)`函数,以便在C语言中完成值交换。 ### 方法一:使用临时变量 这是最直观且最常用...

    C语言程序设计之交换两个数的值

    给定的代码中还包含了一个用于交换两个整数值的函数`swap`。 #### 函数实现 ```c int swap(int a, int b) { cout &lt;&lt; "before swap()" ; cout ; a = a + b; b = a - b; a = a - b; cout &lt;&lt; "after swap()" ; ...

    swap_swap_

    在计算机硬件中,交换操作经常通过XOR(异或)门或组合其他逻辑门来实现,因为异或门可以无条件地交换两个输入的状态,而不需要额外的控制信号。 在Logisim中,`.circ`文件是项目文件,它包含了电路的所有信息,如...

    C语言在不创建变量的情况下,交换两个变量的数据(面试题)

    通常,我们使用一个临时变量来存储其中一个变量的值,然后将另一个变量的值赋给第一个变量,最后将临时变量的值赋给第二个变量。但是,在不允许使用额外变量的情况下,我们需要采用其他策略。 一种解决方法是利用...

    堆排序C语言描述

    堆排序的时间复杂度为O(n log n),空间复杂度为O(1),因为它是在原地进行排序,不需额外的存储空间。这种排序算法适用于大规模数据集,且性能相对稳定。然而,由于其不是稳定的排序算法,相同元素的相对顺序可能会在...

    算法:C语言实现(第5部分)

    这里,`swap`函数用于交换两个元素的值,其实现可以是: ```c void swap(int *x, int *y) { int temp = *x; *x = *y; *y = temp; } ``` 以上仅是算法C语言实现的一个简单示例,实际上,C语言可以用来实现各种...

    abc.rar_ABC_abc互换C语言_roofjzo

    这种方法不使用额外的存储空间,但需要理解异或运算是如何工作的,以及它在二进制层面上如何改变数值。 总的来说,数值交换是C语言编程的基本技能之一,它涉及到指针、内存管理和运算符的理解。无论是初学者还是...

    使用C语言写的简单选择排序

    - **`swap()`** 函数用于交换两个整型变量的值。此操作在选择排序中用于将找到的最小值与当前位置的值进行交换。 - **`selectmin()`** 函数用于在数组的未排序部分找到最小值的索引。它从当前索引开始遍历数组,如果...

    C语言实用小程序修订版

    以上介绍了几个实用的C语言小程序函数,包括字符大小写的转换、整型变量的最大最小值的获取以及不使用额外变量来交换两个整数的方法。这些函数简洁而高效,适用于多种编程场景。通过对这些函数的理解和应用,可以...

    045 快速排序 C语言 快速排序 C语言

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R....此外,快速排序在内部存储需求方面也是高效的,因为它是原地排序算法,不需要额外的存储空间。在C语言中,快速排序被广泛用于数据处理和各种算法实现中。

    C语言快速排序算法

    首先定义了一个`swap`函数用于交换数组中的元素,接着定义了`partition`函数用于分区操作,最后是`quickSort`函数,它递归地调用自身以对数组的不同部分进行排序。在`main`函数中,定义了一个待排序的数组,并调用`...

    插入排序C语言算法实现

    2. **交换函数**:`void swap(int a[], int x, int y)`用于交换数组`a`中下标为`x`和`y`的两个元素,实现元素的移动。 3. **排序函数**:`void inssort1(int A[], int n)`是插入排序的核心实现。它遍历数组中的每个...

    c代码-C语言 数据交换

    在C语言中,数据交换是一个常见的编程操作,它通常涉及到两个或多个变量之间的值互换。这个场景在很多算法和程序设计中都有应用,比如排序、数组操作等。本项目提供的`main.c`文件和`README.txt`文件可能包含了一个...

    C语言教案101.ppt

    在这个例子中,`swap`函数接收两个指针作为参数,通过解引用操作改变了它们所指向的变量的值,实现了无须额外空间的变量交换。 总的来说,理解和掌握C语言中的指针对于编写高效、灵活的程序至关重要。在使用指针时...

    快速排序(C语言实现)

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer...同时,由于快速排序是原地排序且不需要额外存储空间,所以在内存受限的情况下也是理想选择。

    每日一题:不适用第三个变量,实现交换两个输入参数1

    "每日一题:不适用第三个变量,实现交换两个输入参数1"和【描述】描述了一个这样的问题,要求编写一个名为`swap`的函数,该函数接受两个参数`a`和`b`,并且在不使用第三个变量的情况下交换它们的值。 在【标签】...

    使用C语言写的直接插入排序算法

    插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间),因而总的空间复杂度为O(1)。 #### 算法特点 1. **稳定性**:插入排序是稳定的排序方法。 2. **时间复杂度**: - 最好情况(输入数组已经是...

    C语言指针 学校的讲义 新手看看吧

    例如,交换两个整数a和b的值,可以创建两个指针p1和p2分别指向a和b,然后通过指针交换它们的值,而不需要引入额外的临时变量。在函数中,指针参数使得函数能够直接操作传入变量的地址,从而改变其值,如`swap`函数所...

Global site tag (gtag.js) - Google Analytics