生产者的线程专门用来生产一些数据,存放到一个中间变量中。消费者再从这个中间的变量中取出数据进行消费。但是因为要使用中间变量,中间变量通常是一些全局变量,因此需要使用锁来保证数据完整性。 import random import threading gMoney = 1000 gTimes = 0 g ...
分类:
其他好文 时间:
2020-06-21 11:36:18
阅读次数:
44
一,选择排序的思想: ①先假设第一个数最小的,然后拿这个数去和后面的n个数依次进行比较,②如果发现有比最小值还小的数 则通过中间变量记录下下标和值,③然后继续拿这个最小值往后进行比较,如果又发现比最小值还小的值 就执行第②步,直到比完最后一个元素④最后把存在中间变量的最小值和最小值的下标 和假设的那 ...
分类:
编程语言 时间:
2020-05-31 17:37:48
阅读次数:
61
Java自增自减 “先修改后使用” ++ i 反编译结果: “先使用后修改” i ++ 反编译结果: 从上面反编译的结果看,java中的“先使用后修改”,其实是借助一个中间变量来保存变量原来的值,在这个值被使用前,变量的值已经发现了改变。所以用“先使用后修改”来描述java中的 i++或i 可能并不 ...
分类:
编程语言 时间:
2020-05-01 18:46:23
阅读次数:
62
题目:不使用临时变量交换两个变量值 分析:使用加、减、乘、亦或(a^b^a==b),四种方法分别如下: ...
分类:
其他好文 时间:
2020-03-23 12:37:13
阅读次数:
81
#include<stdio.h>intmain(){inta,b,c;c=0;printf("请输入两个数字\n");scanf("%d%d",&a,&b);c=b;b=a;a=c;printf("%d%d",a,b);return0;}//存在中间变量进行两个数交换#include<stdio.h>intmain(){inta,b;printf("请输入
分类:
编程语言 时间:
2020-03-14 16:43:58
阅读次数:
63
//普通操作 void swap(int &a, int &b) { a = a + b; b = a - b; a = a - b; } //位与操作 void swap(int &a, int &b) { a ^= b; b ^= a; a ^= b; } 作者:力扣(LeetCode)链接:h ...
分类:
其他好文 时间:
2020-02-24 09:45:24
阅读次数:
52
1. C++ int a = 0,b = 1; (1)借助中间变量: int tmp = a; a = b; b = tmp; (2)相加或相乘的方法 有越界的危险 a = a + b; b = a - b; a = a - b; a = a*b; b = a/b; a = a/b; (3)异或 快 ...
分类:
其他好文 时间:
2020-02-22 00:46:08
阅读次数:
62
1,赋值运算符就是将某个运算后的值,赋给指定的变量 2,赋值运算符一览表: 3,交换两个变量的值 1 #include<stdio.h> 2 void main() { 3 int a = 10; 4 int b = 20; 5 int temp = a;//temp=10 6 a = b; //a ...
分类:
其他好文 时间:
2020-02-21 09:50:51
阅读次数:
69
接上篇三、不借助中间变量交换两个变量的值通常情况下,我们要交换两个变量的值都按如下步骤操作:这种操作方式不难理解,实现交换变量值的关键点就在于中间变量c。而现在的题目要求是不借助中间变量来交换a和b的值。如果不使用位运算的方式,同样可以做到不借助中间变量交换两个变量的值,其实现过程如下。为了讲解方便,我们把最初a与b的值称之为原始a和原始b,3行代码就是3步操作:第1步:把原始a与原始b相加的和存
分类:
编程语言 时间:
2020-02-17 18:04:09
阅读次数:
68
算法之排序二 四、冒泡排序与插入排序 为何在实际中倾向于使用插入排序而不是冒泡排序,尽管它们的时间复杂度都是O(n2),而且也都是稳定的。看一下两个算法在交换元素数值的处理上就知道了。对于冒泡排序,交换两个元素时需要引入中间变量,也就是如果需要交换 A 和 B,我们需要让 A 赋值给 C,然后让 A ...
分类:
编程语言 时间:
2020-02-17 14:24:34
阅读次数:
86