看到一种两变量交换的新方法,不需要临时变量,只适用于数值变量。 仅此提供新思路,没有太大实用价值。 只能预防有人问你:不使用临时变量,交换两个整形变量的值。 ...
分类:
其他好文 时间:
2016-09-10 14:26:11
阅读次数:
97
这两天搞服务器有点呆呆的。(⊙o⊙)(⊙o⊙) 在这里用冒泡排序demo 来说明。 第一种 最low的一种 借助中间变量 line 5 6 7 第二种 不借助中间变量 line 5 6 7 第三种 借助数组 推荐 line 5 知识要一点点积累总结,向大牛膜拜的同时,也要走路哦。掌握好基础,多思考, ...
分类:
编程语言 时间:
2016-09-09 22:12:07
阅读次数:
148
第一种:使用中间变量 int a = 1, b = 2, c; c = a; a = b; b = c; printf(“%d,%d”, a, b); 第二种: int a = 1, b = 2; a = a + b; b = a - b; a = a - b; printf(“%d%d”, a, ...
分类:
编程语言 时间:
2016-08-30 00:19:22
阅读次数:
153
1.单例模式 2.冒泡排序 3.递归算5的阶乘,我只算出了最终结果,可以深入点的话,有兴趣的可以写个5!=5*4*3*2*1,4!=4*3*2*1这样输出,稍加改动应该简单 4.不使用第三变量交换两个变量值,(写牛逼点,那就用位运算吧,第一种我注释掉了) 5.这种继承基类的面试题很普遍吧,拿来解析一 ...
分类:
编程语言 时间:
2016-08-27 20:46:35
阅读次数:
184
对于两种变量的交换,我发现四种方法,下面我用Java来演示一下。 1.利用第三个变量交换数值,简单的方法。 (代码演示一下) 2.可以用两个数求和然后相减的方式进行数据交换,弊端在于如果 x 和 y 的数值过大的话,超出 int 的值会损失精度。 (代码演示一下) 3.利用位运算的方式进行数据的交换 ...
分类:
编程语言 时间:
2016-08-25 20:55:14
阅读次数:
147
package test; public class Test { public static void main(String[] args) { int a, b; a = 10; b = 12; System.out.println(a + " " + b); /* * 借助第三方变量 这种算 ...
分类:
编程语言 时间:
2016-08-01 17:24:29
阅读次数:
137
Java线程工作内存与主内存变量交换过程及volatile关键字理解 1. Java内存模型规定在多线程情况下,线程操作主内存变量,需要通过线程独有的工作内存拷贝主内存变量副本来进行。此处的所谓内存模型要区别于通常所说的虚拟机堆模型: 2. 线程独有的工作内存和进程内存(主内存)之间通过8中原子操作 ...
分类:
编程语言 时间:
2016-07-25 18:18:12
阅读次数:
720
1 #define container_of(ptr, type, member) ({ \ 2 const typeof( ((type *)0)->member ) *__mptr = (ptr); \ 3 (type *)( (char *)__mptr - offsetof(type,mem ...
分类:
其他好文 时间:
2016-06-15 10:30:23
阅读次数:
217
#include<stdio.h>
#include<stdlib.h>
intmain()
{
inta=1;
intb=2;
inttmp=a;
a=b;
b=tmp;
printf("a=%db=%d\n",a,b);
system("pause");
return0;
}上面是用创建中间变量的方法交换,下面是不创建中间变量的另一种方法:a=a+b;
b=a-b;
a=a-b;
当然..
分类:
其他好文 时间:
2016-06-14 19:46:51
阅读次数:
169
第一种用数学思维,第二种用异或 如交换a,b 1: a=a+b; b=a-b; a=a-b; 2: a=a^b; b=b^a; a=a^b; 代码: ...
分类:
其他好文 时间:
2016-06-10 22:56:03
阅读次数:
156