《编程之美》学习笔记
来源:互联网 发布:linux pwd命令详解 编辑:程序博客网 时间:2024/05/17 01:49
师兄留下了《编程之美》,今天翻开之后,打算开始学习,为下步工作准备:
先记下几句话吧:1.题目关键不在于答案,在于思考问题的方法。
2.微软职位:1AR 协助研究员2,DEV 软件开发工程师3,TEST 测试工程师 4,RSDE 我认为就是在AR和DEV之间的一类职位吧,兼具有之。
3.较为看重同学的程序设计思路如何,编程风格,细节考虑,有无内存泄露,是否采用最优算法,程序能够根据需求修改,能否举一反三。
4.药灵丸不大,棋妙子不多。意思是说,程序小巧灵活,能体现出编程之美。
5.纸上得来终觉浅,绝知此事要躬行,一定要践行代码,纸上写代码。
6.画意能达万言,意思就是说图比文字更有说服力,我们老师常说的一句话就是有图有真相。意思类似。
7.面试时,一般是先提供一个简单的方法,然后,再根据此试图找到一个更好的解决方法。
第一个问题 如何指挥CPU的占有率
基本思路是首先分析出什么样的代码会完全占用CPU,答案是死循环。其次,什么样的代码会不占用CPU,答案是睡眠。 这样通过控制睡眠和死循环代码的执行时间,就可以控制CPU的占有率。甚至能够动态地画出正玹曲线。
#include"stdio.h"#include"windows.h"//sleep 所在头文件#include"math.h"#include"stdlib.h"#include"windef.h"int main(){//for(;;);/*---------1-1--------------for(;;)//死循环 一半的时间{for(int i=0;i<9600000;i++) ;Sleep(10);}return 0;--------------------------------*//**************通过busyTime和idleTime调节*********const DWORD busyTime=10;const DWORD idleTime=busyTime;_int64 startTime=0;while(1){DWORD startTime=GetTickCount();//获取系统启动到现在的时间//busywhile(GetTickCount()-startTime<busyTime) ;//记录时间//idleSleep(idleTime);}return 0;************************//************************正宣曲线****************const double PI=3.1415926;const int Sincount=200;//一个2 PI周期进行200次采样const DWORD SinTime=300;//每300ms进行一次采样,即1分钟为一个正周期DWORD busyTime[Sincount];//记录每一次采样的忙碌时间 SinTime-busyTime即是休闲时间//依次200次采样的计算忙碌时间for(int i=0;i<Sincount;i++){busyTime[i]=(DWORD)(SinTime/2+SinTime/2*sin(2*PI*i/Sincount));}//循环正玄曲线for(int j=0;;j=(j+1)%Sincount){DWORD startTime=GetTickCount();while(GetTickCount()-startTime<busyTime[j]) ;Sleep(SinTime-busyTime[j]);}return 0;************************************************/}
- 《编程之美》学习笔记
- 编程之美 学习笔记
- 《编程之美》学习笔记
- 编程之美学习笔记之2.1
- 编程之美2.2学习笔记
- 编程之美 学习笔记1_1
- <编程之美>学习笔记1
- 编程之美 笔记
- 编程之美笔记
- 编程之美笔记
- 《编程之美》学习笔记之 最大公约数问题
- 《编程之美》学习笔记--控制CPU占用率
- 编程之美学习笔记-第二章(一)
- 《编程之美》学习笔记——中国象棋将帅问题
- 编程之美学习笔记(一): 1的数目
- 编程之美学习笔记(二):中国象棋将帅问题
- 《编程之美》学习笔记 1.2中国象棋将帅问题
- 《编程之美》学习笔记——指挥CPU占用率
- 启动dhcp出错:No subnet declaration for eth0 (192.168.0.1
- 网址
- 产品设计:移动应用表单浅析
- 第11天的交易(2013-4-3)(-100) (-157.66)
- Mysql中文乱码问题完美解决方案
- 《编程之美》学习笔记
- 在PC上安装虚拟机进行网络实验。如何规划,进行安装DHCP服务实验。还有dns服务器的验证
- Object-C学习笔记(三)-----实体类和for循环以及NSMutableArray的连用
- 逐步改善,设计优秀的API
- RTF 语法2
- Ajax文件下载
- Linux教程:配置DHCP服务器方法介绍
- 程序员心髓:移动应用API设计10大技巧
- dhcpd提示No subnet declaration for eth0的解决方法