尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

CS50笔记 笔记整理

CS50笔记 笔记整理
📅 发布时间:2026/7/19 23:52:21

CS50笔记 笔记整理

——哈佛大学CS50《计算机导论》课程(2019) 学习平台:哔哩哔哩

学习大概50天了,笔记有点乱,稍微整理了一下

(一)第一集 引言

1.什么是计算机科学?

计算机科学是指:解决问题的过程;input→〖一系列计算〗→output

2.如何表示input和output?

用二进制(0/1)表示input和output,二进制可以表示数字、文字、图片、视频、音乐

3.如何从input到output?

用算法实现从input到output,算法有优劣

4.如何开始运行?

通过伪代码翻译算法后运行

5.一些概念

函数、条件、布尔表达式、循环、变量、线程、事件、编程语言(C、Python、Scratch)

(二)第二集 C语言

1.如何使用C语言平替scratch语言的格式?

printf:print表示打印,f表示格式,即:打印格式化文本;<stdio.h>:printf等功能的保存位置;引号、分号要注意

C语言可以获取输入内容、设置变量、使用if······else······条件、使用while循环、for循环

2.C语言如何运行程序?

(1)思路:

input→〖一系列计算〗→output源代码→〖编译〗→机器代码

(2)工具:

源代码编辑器:VScode、CS50 IDE等

编译器:MingW64

编译指令:Clang、ls、rm、mkdir、rmdir

3.一些概念

数值类型:bool、char、double、float、int、long、string

CS50提供的函数:get_char、get_double、get_float、get_int、get_long、get_string

占位符:%c、%f、%i、%li、%s

数字溢出

4.实践小妙招

①如果是在文件夹里面,编译时,需要带上文件夹的名字,用/分隔

②利用 .+数字+f 可以保留小数,保留几位数字填几

③ %是取余运算符;cd 可以转移到想要去的目录;//后面是注释

④cd 后面不加任何东西会返回最开始的目录;pwd 可以显示处于哪个目录下

⑤在终端按向上的箭头,可以复制之前输入的代码指令;字符引用采用单引号;||表示或

⑥for后面使用分号隔开,两个for循环的使用构成二维

⑦最开始的声明就是复制标题,告诉C,你见过这个函数了,可以编译了

(三)第三集 代码原理与优化

1.汇编底层原理是什么?

预处理、编译、组装、链接

2.如何调试代码错误?

help50、 printf 、断点调试debug50、check50、style50

3.如何优化代码?

用数组、字符串、命令行参数优化

PS:main函数的输入与返回值,文件名称存储于argv[0]中,第一个输入存储在为argv[1]

(四)第四集 算法

1.算法的种类有哪些?

线性搜索、二进制搜索

2.如何描述算法?

(1)O:最差解

O():冒泡排序,选择排序

O():合并排序

O(n):线性搜索(linear search)

O():二进制搜索(binary search)

O(1)

(2)Ω:最优解

Ω():选择排序

Ω():合并排序

Ω(n):冒泡排序(当无交换就停止时)

Ω()

Ω(1):线性搜索(linear search)、二进制搜索(binary search)

(3)θ:最优解与最差解相同的算法

():选择排序

():合并排序

(n)

()

(1)

3.如何用编程实现算法?

(1)线性搜索

可能失败,因为字符串不是数据类型,而是一个数组,既然是数组,就可能有多个char,在C语言中,需要比较每一个字符相同,字符串才会相同,python语言倒是可以直接比较;可以用string.h文件中的strcmp去比较字符串,两个字符串相同时,返回0

可以自己定义数据类型

关键词:typedef(定义一个类型)、struct(可以放置多种数据类型的容器)

(2)二进制搜索:二进制搜索需要先排序

①冒泡排序

遍历次数:(n-1)*(n-1)

时间:最差:O();最好:Ω()

如果规定:没有交换就停止,那么最好的是:Ω(n)

②选择排序

遍历次数:n(n+1)/2=n²/2+n/2

时间:最差:O();最好:Ω()

(3)递归与合并排序

①递归

②合并排序

分成2半的时间需要:(如上面的3行)

每次合并需要读取所有元素,即所需时间为n(如上面的8列)

时间:最差:O();最好:Ω()

相关新闻

  • xSTUDIO未来路线图:即将到来的5大令人期待的功能
  • SDF仿真相关VCS编译选项
  • 2026年7月亲身到店探访北京亨得利官方名表服务中心|网点地址和官方电话 - 亨得利官方博客

最新新闻

  • 广州市奇杉服装配料有限公司:国内布局广东广州等地区缝纫线批发厂家,赋能纺织行业升级 - 十大品牌榜
  • 带“双端接地”测试功能的高压开关机械特性测试仪有必要买吗? - HVHIPOT
  • 3分钟快速上手:无需Root的安卓投屏神器scrcpy完全指南
  • 【Autosar从入门到精通到进阶实战篇】63 AUTOSAR的定时器管理:从硬件定时器到软件定时器的无缝衔接
  • 文献格式自动纠错率提升97.3%!基于LLM微调的CitationFixer开源方案首次公开(限免72小时)
  • 全方位种草|Paperxie全板块功能解析!每一个功能都在拯救你的毕设难题(全程免费)

日新闻

  • 百达翡丽官方服务项目及价格查询|维修地址与电话权威信息通告(2026年7月最新) - 百达翡丽服务中心
  • 2026年药食同源冲泡饮品哪家好:衡身堂三伏天内调外养 - 晚香时候
  • 芝柏官方更换原装表带价格查询|详细地址与24小时客服电话权威信息公告(2026年7月最新) - 亨得利官方服务中心

周新闻

  • SaaS软件行业GEO实践:AI搜索时代的品牌可见性与获客新路径
  • 什么是PCTFE?医药高端包装的“防潮王牌“材料
  • 【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号