当前位置: 首页 > news >正文

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

http://www.jsqmd.com/news/1222774/

相关文章:

  • xSTUDIO未来路线图:即将到来的5大令人期待的功能
  • Fan Control:Windows系统风扇控制的终极解决方案与技术深度解析
  • NET+AI | Harness | MAF 1.4 发布,Harness Engineering 如约而至,智能体工程化更进一步
  • 浪琴官方保养价格查询|地址与电话权威信息公告(2026年7月最新) - 浪琴官方售后服务中心
  • 2026广东企业AI获客捷径!专业GEO优化全程落地,咨询热线在线对接 - Guangdong1
  • Alacritty-Themes高级技巧:自定义主题和配置文件管理
  • 你让AI帮你规划三亚旅行,背后发生了什么?
  • 为什么你的AI Banner总被老板打回?揭秘设计规范×算法逻辑×平台审核的3层校验机制
  • 2026年7月亲身到店探访北京亨得利官方名表服务中心|网点地址和官方电话 - 亨得利官方博客
  • 欧米茄官方保养价格查询|网点地址与客服热线权威信息公告(2026年7月最新) - 欧米茄官方服务中心
  • SDF仿真相关VCS编译选项
  • 深入解析F28003x PIE中断控制器:原理、配置与实战避坑指南
  • 鸿蒙 PC Markdown 编辑器查找系统:大小写、整词与循环定位
  • 2026年湖南Aigc培训机构推荐排行榜单汇总 - 互联网科技品牌测评
  • ThinkingCap-Qwen3.6-27B-mlx-6Bit模型深度解析:6位量化如何实现高效AI推理
  • 江诗丹顿中国官方售后服务中心|网点地址及售后服务热线权威信息声明(2026年7月最新) - 江诗丹顿服务中心
  • 模型服务访问限制应对:API稳定性与架构弹性设计指南
  • C++网络编程模型详解
  • 2026年7月最新江诗丹顿佛山王府井紫薇港维修保养服务电话 - 江诗丹顿官方服务中心
  • Vim-wordy终极指南:10个技巧提升你的写作质量
  • 2026年7月最新卡地亚天津滨海吾悦广场维修保养服务电话 - 卡地亚官方售后中心
  • ExusData:机器人触觉感知数据集完全指南
  • 还在为论文头秃?这5个AI论文工具让你效率翻倍!
  • 2026年Q3四川集装箱定制厂家深度行业分析及权威推荐榜单 - 甄选服务推荐
  • 真力时客服中心电话售后维修保养服务热线权威公示(2026年7月最新) - 亨得利官方服务中心
  • 这里有惊喜,千问新用户免费领8元优惠券 输:新用户福利020738,激活领取入口
  • Go 零基础入门万字笔记整理|语法规范、数据类型、指针、运算符、流程控制、函数全梳理
  • C++ 游戏开发框架:从入门到选型指南
  • 2026年7月最新浪琴福州仓山万达广场维修保养服务电话 - 浪琴官方售后服务中心
  • 大语言模型J空间机制:从全局工作空间理论到AI安全监控