韩翔给蓝儿发去了一条信息,不一会儿,他的手机便传来手机信息声。
“翔,我也爱你!元宵节快乐!”韩翔看着微信上蓝儿跳动着的头像,内心满是欢喜。
韩翔轻点蓝儿的头像,读完信息后,脸上洋溢着幸福的笑容。
随后,他打开电脑,开始复习起计算机科学与技术专业的课程。
他看着那些数组、链表、栈和队列......。
脑子里开始梳理起数组在内存中的存储方式,如何通过索引快速访问元素,以及数组在不同编程语言中的实现方式。
他一边看着笔记,一边在纸上画着简单的示意图。
复习完数组后,他开始研究链表。
链表相较于数组更为复杂,其节点之间通过指针相连。
韩翔仔细地回顾隶链表、双链表和循环链表的结构特点和操作方法。
他在电脑上打开代码编辑器,开始编写创建链表、插入节点、删除节点等操作的代码。
在编写过程中,他遇到了指针的方向错误,导致的链表结构混乱。
在通过仔细耐心地调试,逐行检查代码逻辑,最终解决了这些问题。
这让他对链表的理解更加深刻,他深知只有通过实际的代码操作,才能真正掌握这些数据结构的精髓。
接着,韩翔将注意力转移到了栈和队列上。
栈是一种后进先出的数据结构,而队列却是先进先出。
他复习了栈在函数调用中的应用,如何利用栈来保存函数的局部变量和返回地址。
对于队列,他想到了操作系统中的进程调度,先进入就序队列的进程会先被调度执校
在通过编写模拟栈和队列操作的程序上,来巩固自己的知识。
他设置了不同的测试数据,观察程序的输出结果是否符合预期,这一过程让他对这两种数据结构的特性有了更直观的感受。
......。
韩翔完成数据结构的复习后,又开始复习算法相关的知识。
算法是数据结构的灵魂,好的数据结构需要搭配高效的算法才能发挥最大的作用。
他从排序算法开始复习,首先是冒泡排序。
只见他紧锁眉头,回忆起冒泡排序的原理。
每一次比较相邻的两个元素,如果顺序不对就需要进行交换,这样经过多轮比较后,最大(或最)的元素就会“浮”到数组的一端。
他在纸上写出了冒泡排序的代码实现,并且计算了其时间复杂度为o(n2)。
接着思考着如何对冒泡排序进行优化。
他设置了一个标志位来判断在一轮比较中是否发生了交换,如果没有交换就明数组已经有序,可以提前结束排序。
然后,他复习了快速排序算法。
快速排序是一种基于分析思想的高效排序算法。
在复习中,有些口渴,他起身拿着学习桌上的水杯,走到客厅里,从饮水机里接了一杯热气腾腾的水,又走进电脑跟前。
一边饮着水,一边仔细研究着分区操作的原理。
如何选择一个基准元素,将数组分为左右两部分,使得左边的元素都于等于基准元素,右边的元素都大于等于基准元素。
他在电脑上实现了快速排序算法,并通过随机生成大量不同规模的数组进行测试,观察算法的运行时间和排序结果。
“嗯!”他发现了快速排序在平均情况下的时间复杂度为o(n log n),但在最坏情况下可能会退化为o(n2),这让他对算法的性能分析有了更深入的理解。
除了排序算法,韩翔还复习了搜索算法,如二分搜索算法。
二分搜索算法适用于有序数组,它通过不断地将搜索区间缩一半,从而快速定位目标元素。
在复习时,韩翔不仅掌握了二分搜索算法的基本实现,还思考了一些变体情况,比如在存在重复元素的有序数组中如何找到所有目标元素的位置。
他通过编写代码来解决这些变体的问题,进一步提升了自己对搜索算法的掌握程度。
复习完数据结构和算法这些基础课程后,韩翔将目光投向了计算机组成原理。
计算机组成原理是理解计算机硬件工作机制的关键课程。
他从计算机的基本组成部分开始复习,包括运算器、控制器、存储器、输入设备和输出设备。
又研究了cpU的结构和功能,了解到cpU如何执行指令,如何从内存中读取数据和指令,以及如何进行算术和逻辑运算。
韩翔打开了一个cpU模拟器软件,通过这个软件,他可以直观地看到cpU内部各个部件的协同工作过程。
他设置了一些简单的指令序列,观察cpU是如何按照指令周期逐步执行这些指令的。
还复习了计算机的存储系统,从高速缓存(cache)到主存储器(RAm)再到辅助存储器(如硬盘)。
他理解了不同层次存储器的特点和作用,以及它们之间的数据交换机制。
他自言自语道:“高速缓存是为了提高cpU访问数据的速度,它利用了局部性原理,将经常访问的数据存储在靠近cpU的高速缓存郑”
在复习计算机组成原理的过程中,韩翔还关注了计算机的指令系统。
不同的计算机有不同的指令集,他主要复习了常见的x86指令集。
他浏览着指令的格式、操作码和操作数的含义,以及如何通过汇编语言来编写简单的程序。
他在电脑上安装了一个汇编语言开发环境,编写了一些简单的汇编程序,如计算两个数的和、判断一个数的奇偶性等。通过编写这些程序,他对计算机指令的执行过程有了更清晰的认识。
“祥云,广场上来了踩高跷、舞狮子的了,你去看吗?”奶奶在院子里喊道。
这时候,从窗外也传来了锣鼓声和噼里啪啦的鞭炮声。
“奶奶,我不去了,在学习呢。”韩翔告诉奶奶。
他继续沉浸学习中,复习着操作系统的课程。
操作系统是计算机系统的管理者,它负责管理计算机的硬件资源和软件资源,为用户和应用程序提供一个方便、高效、安全的运行环境。
喜欢天地姻缘传请大家收藏:(m.xspsw.com)天地姻缘传闲时书屋更新速度最快。