news 2026/7/19 23:45:26

CS50笔记 笔记整理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CS50笔记 笔记整理

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);最好:Ω(

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 23:44:15

Unlock-Music:浏览器内一键解锁加密音乐文件的终极解决方案

Unlock-Music&#xff1a;浏览器内一键解锁加密音乐文件的终极解决方案 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址: …

作者头像 李华
网站建设 2026/7/19 23:44:14

宁波这些口碑超棒的婚姻律师,你知道都有谁吗

在婚姻家事领域&#xff0c;存在着诸多核心技术挑战。据相关数据显示&#xff0c;在离婚财产分割案件中&#xff0c;有超过60%的案件涉及复杂财产类型&#xff0c;如房产、股权、隐匿财产等&#xff0c;这给财产的准确评估和合理分割带来了巨大困难。在孩子抚养权争夺方面&…

作者头像 李华
网站建设 2026/7/19 23:40:20

一家专注箱包质量与耐用性的制造工厂,涟水晨艺轩靠谱

加急生产收纳包厂家怎么找&#xff1f;涟水晨艺轩支持定制代工中小型电商卖家、跨境创业者在备货马克笔收纳包、文具袋、简易化妆包、帆布收纳袋或牛津布拉链袋时&#xff0c;常见需求不是单纯找低价货源&#xff0c;而是找到能配合打样、批量生产、加急排产和质量把控的收纳包…

作者头像 李华
网站建设 2026/7/19 23:36:34

原神玩家信息查询终极指南:如何一键获取完整账号数据

原神玩家信息查询终极指南&#xff1a;如何一键获取完整账号数据 【免费下载链接】GenshinPlayerQuery 根据原神uid查询玩家信息(基础数据、角色&装备、深境螺旋战绩等) 项目地址: https://gitcode.com/gh_mirrors/ge/GenshinPlayerQuery 还在为无法全面了解自己的原…

作者头像 李华
网站建设 2026/7/19 23:34:13

2026横评:5大宁波初一数学小升初机构横向评测

在宁波&#xff0c;每年升学的洪流裹挟着成千上万的家庭。从镇海到海曙&#xff0c;从鄞州到北仑&#xff0c;小升初、中考与新高考的重压几乎均匀地落在每一位家长肩头。越是走在前列的区域&#xff0c;教育资源的竞争越接近白热化——家长一面担忧孩子跟不上课堂节奏&#xf…

作者头像 李华
网站建设 2026/7/19 23:31:59

Ptex API实战教程:10个实用技巧提升渲染器纹理性能

Ptex API实战教程&#xff1a;10个实用技巧提升渲染器纹理性能 【免费下载链接】ptex Per-Face Texture Mapping for Production Rendering https://wdas.github.io/ptex 项目地址: https://gitcode.com/gh_mirrors/pt/ptex Ptex是迪士尼动画工作室开发的生产级渲染纹理…

作者头像 李华