问题一:找出最大值(最大或最小) 法一:用一个中间变量(默认是a[0])与数组每一个值比较,大的就赋值给中间变量 法二:找出最大值的下标,用一个下标变量(默认‘0’)与数组的每个值比较,大的就赋该值的下标给变量问题二:数组的查找操作。(二分法的应用:对于有序的序列) 练习:有一个有...
分类:
编程语言 时间:
2014-11-26 18:07:35
阅读次数:
209
1.KVO内部实现原理1》 KVO是基于runtime机制实现的2》当某个类的对象第一次被观察时,系统就会在运行期动态的创建该类的一个子类,在这个子类中重写父类 中任何被观察属性的setter方法,子类在被重写的setter方法实现真正的通知机制。2.不用中间变量,用两种方法交换A和B的值A = A...
分类:
其他好文 时间:
2014-11-19 07:26:33
阅读次数:
218
#include<stdio.h>//重点理解:1.指针:变量的地址。指针变量:存放地址的变量。voidexchange_1(inta,intb)//只能在此函数实现变量交换,交换后的值不能返回到main函数中{intt;t=a;a=b;b=t;}voidexchange_2(int*a,int*b)//此函数只是交换了存放a,b地址的变量中的值。{int..
分类:
其他好文 时间:
2014-11-16 18:54:05
阅读次数:
157
不使用临时变量 交换两个变量值1.$a = $a+$b;$b = $a-$b;$a= $a-$b;2.list($a, $b) = array($b, $a);3.$a = $a ^ $b;$b = $a ^ $b;$a = $a ^ $b;
分类:
其他好文 时间:
2014-11-11 12:05:01
阅读次数:
176
#include #include int main(void){ int a, b, t; scanf("%d%d", &a, &b); /* 方法一:三变量法 t = a; a = b; b = t; 方法二: a = a - b; b = a + b; a = b - a; 方法二变种: .....
分类:
其他好文 时间:
2014-11-09 23:25:47
阅读次数:
254
寄存器通过操作数据总线,控制总线和地址总线实现数据的读取,肯定是非常灵活的方式,假如对某个存储单元进行比较复杂的操作,不断的进行读取显然需要优化,比如说加入缓存,事物或者中间变量什么的,当然,这里我们只能加入硬件,比如说寄存器(看来机器码会与寄存器有关)通用寄存器:就算是将寄存器理解为存储单元里面的...
分类:
其他好文 时间:
2014-11-05 19:35:55
阅读次数:
140
交换两个变量的值,古老的话题,下面把各种方法做个总结。
为了方便,先定义两个变量。
int a = 1;
int b = 2;
一 借助临时变量
1 交换变量值
int tmp;
tmp = a; // tmp = 1
a = b; // a = 2
b = tmp; // b = 1
2 交换地址
int *p;
p = &a; // tmp->1
a = &...
分类:
编程语言 时间:
2014-10-31 10:16:04
阅读次数:
199
位运算是C/C++中的基本运算之一,即便是这样,它对大多数程序员来说是一个比较陌生的运算——大多数程序员很少使用位运算。本篇先简要介绍基本的位运算操作符及其用法(何时使用),然后介绍位运算符的几个典型应用:(1)三种不用临时变量交换两个整数的实例,并分析每个实例的优缺点(2)进制转换,通过位运算实现...
分类:
其他好文 时间:
2014-10-28 12:00:32
阅读次数:
281
前面我们谈到了,可用通过异或运算交换两个数,而不需要任何的中间变量。 如下面:void exchange(int&a,int&b){a ^=b;b ^=a;a ^=b;}然而,这里面却存在着一个非常隐蔽的陷阱。通常我们在对数组进行操作的时候,会交换数组中的两个元素,如exchang(&a[i], &...
分类:
其他好文 时间:
2014-10-26 21:13:00
阅读次数:
179
有两个变量 a 和 b ,交换这两个变量的值方法一 使用中间变量void swap(int *a, int *b){ int temp = 0; temp = *a; *a = *b; *b = temp; }方法二 不适用任何中间变量 ① 异或运算法void swap...
分类:
其他好文 时间:
2014-10-26 13:05:02
阅读次数:
149