- 博客(13)
- 收藏
- 关注
原创 从UML(统一建模语言)的视角看待软件系统分析与设计
UML(统一建模语言)是非专利的第三代建模和规约语言,是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
2023-03-27 15:18:58
178
原创 “计算机科学”概述
时光不居,几年前就开始梳理计算机科学这门学科,一晃至今我感悟颇多。从最初研究基础理论,到后来项目实践,再到现在重视前沿技术的探索,总感觉学的越多知识却越匮乏。但有一点欣慰的是,刚开始喜欢看各个分支的书籍,现在主打视频学习,手痒了写个demo巩固知识,数学也会涉猎。言归正传,今天我想说说对计算机这门学科的理解。其实非常的浅显,算是科普软文吧。大家轻松点看,何不乐乎?
2023-03-27 15:17:16
167
原创 【漫步计算机系统】之数据结构与算法(9):数组2
若等于目标值,则添加这个数字串,并将左右游标start和end加1,数字串减去原start加上end,即将整个数字串向前移动一位;序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序。将字符串 S 从第 K 位置分隔成两个子字符串,并交换这两个子字符串的位置。若和小于目标值,游标end加1,数字串加游标end,迭代;若小于目标值,数字串减游标start,游标start加1;从头至尾扫描字符串,用空格将字符串分割为子字符串;将每个子字符串反转,子字符串和空格的相对位置不变;将字符串从0至k-1反转;
2022-09-05 15:06:54
309
原创 【漫步计算机系统】之数据结构与算法(8):数组
p1为原字符串长度减1,将字符串从p1位置遍历至头字符,若该位置非空格,则将该位置字符复制至p2位置;若为空格,则在p2-2、p2-1、p2位置置为%20;从右上角元素开始,如果目标元素小于该元素,则将游标向左移动一位;在一个字符串中找到第一个只出现一次的字符,并返回它的位置。从头至尾遍历数组cnts,找到值为1的元素,返回该元素在字符串中的位置。遍历字符串,将字符串的每个字符对应的ASCII值作为cnts的下标,该下标的值每次加1;从字符串头字符遍历至尾字符,若有空格字符,则在字符串尾部添加两个字符;
2022-09-05 15:05:42
144
原创 【漫步计算机系统】之数据结构与算法(7):用递归解决链表问题
若链表1的结点值小于链表2的结点值,则链表1结点的next指针指向该链表下一个结点和链表2当前结点的递归函数,并返回链表1的结点,反之亦然。递归到某个链表的结点为空,则返回另一个链表的结点。先将链表中所有结点的next指针指向null,遍历到链表尾结点,将尾结点next指针指向前一个结点。最后,返回新的头结点,即源链表的尾结点。源链表为从小到大排好序,首先判断头结点及之后结点是否重复,如是,则移动至后面第一个不重复的结点,返回这个结点的递归函数。如否,则将头结点的next指针指向这个指针的递归函数。
2022-09-05 15:03:37
195
原创 【漫步计算机系统】之数据结构与算法(6):有趣的链表问题
l1和l2每次前进一步,l1先到达c3,l1返回到指向b1。接下来,l2到达c3,返回到指向a1。此时,l1指向b2结点,两个指针同步前进,同时到达c1,程序返回c1,算法结束。在图1中,设置两个指针,slow和fast,slow指针每次前进一步,fast指针每次前进两步。有两个有意思的关于链表的问题,大家可以先思考一下,再看我的讲解,一定会觉得妙趣横生。注:凡属于本公众号内容,未经允许不得私自转载,否则将依法追究侵权责任。当slow和fast指针进入环中,经过有限次迭代,它们必然在。的slow指针即可。
2022-09-04 11:54:36
277
原创 【漫步计算机系统】之数据结构与算法(5):Array、List和Map等
二叉树中的节点有三个域,一个为指向左子树的指针域,一个为数据域,一个为指向右子树的指针。队列的操作方式和栈相反,队列是“先进先出”。排序的过程是,先将所有元素生成一个堆,然后抽取根节点,根节点为最大值元素,再将右子树最后一个节点插入到根节点,重新整理堆,最后得到的根节点为数据域值第二大的节点。链表不像数组可以随机访问,它在内存中的存储方式是,链接中有若干个节点,每个节点包含数据域和指向下一个节点的指针,头节点指向第一个节点,尾节点指向空,所有节点通过指针域相连,所以访问链表中某一个节点需要从表头节点开始。
2022-09-04 11:53:02
216
原创 【漫步计算机系统】:发展概览Ⅲ
人类最早用机器语言编写代码,而且只有专业人员才能使用“计算机”,他们在卡片上打孔表示0或1,计算机用传送带输入卡片、进行处理、输出结果,那时的计算机运行速度极慢,后来发明了汇编语言,汇编语言是由阿拉伯数字、拉丁字母和特殊字符组成的,相对于0和1的代码来说友好了很多。汇编语言和机器语言是一一对应的,通过汇编器直接转换成二进制代码。云计算的一大优点是安全、可靠,数据中心由大厂商维护,开发者不需要购买服务器、租赁机房,只需要按需向云厂商付费购买计算、存储、网络份额,开发的应用软件自由配置,便可对外提供服务。
2022-09-04 11:51:13
81
原创 【漫步计算机系统】:发展概览Ⅳ
计算机体系结构与计算机网络结构计算机系统最初只是一台本地计算机,随着网络的普及,发展成客户/服务器模式、浏览器/服务器模式和P2P模式等。值得一提的是,独立冗余磁盘阵列(RAID)是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。服务器中有着众多的CPU、大容量的内存和外部存储、高速的网络接口,采用哪种架构使服务器能高可靠、高可用、可扩展、可伸缩、可维护,这是摆在计算机专业人员的一道难题。计算机网络采用分层的模式,分别为.
2021-09-03 21:04:28
98
原创 【漫步计算机系统】:发展概览Ⅱ
AlphaGo:人工智能软件2016年,由谷歌公司开发的AlphaGo围棋机器人以4比1的总比分击败顶尖职业棋手李世石。现如今最顶尖的人工智能软件已经可以打败任何一位人类围棋手了。人工智能程序虽然尚不成熟,但经过几十年的快速发展,已经广泛运用在人们的生活与生产活动中。美军利用无人机炸死“伊斯兰国”头目、手机优化能耗最大限度延长充电后使用时间、无人驾驶、波士顿动力公司生产的机器人等均用到了人工智能技术。人工智能可追溯到希尔伯特、图灵到冯•诺依曼等数学家所处时代,深度学习、神经网络、遗传算法、专家系统等等算.
2021-09-02 14:22:05
98
原创 【漫步计算机系统】:发展概览
从《黑客帝国》说起《黑客帝国》这部电影虽然问世已有20多年,仍值得人们回味,电影中探讨的问题上升到了哲学和人类命运的高度。matrix世界就像上图尼奥背后的代码雨,看得见,却变幻莫测。ENIAC:世界上第一台计算机1946年诞生于宾夕法尼亚大学,特点是机器笨重,操作繁琐,计算能力很有限。虽然这之后的一段时间内,输入计算机的是穿孔卡片,需要等待很长时间才能得出计算结果。但这台基于冯·诺依曼的计算机,是现代便携式计算机的雏形,奠定了现代计算机体系结构的基础。据说当时有一位计算机专业人员发现一只bug(.
2021-09-02 01:06:31
95
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人