- 之前我写过一篇数据结构的文章:堆其实是个很简单的数据结构。堆排序,顾名思义,是要借助堆这种数据结构来实现对数据项的排序。在堆这种数据结构中,节点大于或等于自己的子节点,正因为堆有这种特点,所以我们可以将待排序的数据项依次添加到堆中,然后再依次取出根节点。从堆中取出来的数据项是从大到小排列的,因为根节点永远是最大的,而堆中永远是取根节点。下面来看下堆排序的具体实现(也可以参考堆这个数据结构的代... 之前我写过一篇数据结构的文章:堆其实是个很简单的数据结构。堆排序,顾名思义,是要借助堆这种数据结构来实现对数据项的排序。在堆这种数据结构中,节点大于或等于自己的子节点,正因为堆有这种特点,所以我们可以将待排序的数据项依次添加到堆中,然后再依次取出根节点。从堆中取出来的数据项是从大到小排列的,因为根节点永远是最大的,而堆中永远是取根节点。下面来看下堆排序的具体实现(也可以参考堆这个数据结构的代...
- 这是一篇技术文,继续提升一下我们的内功。从之前一篇文章:我敢说,这图绝对跟你想象中的不太一样!。可以看到,图的边可以有方向,那么这一篇文章,我们来探讨一下边的另一个特性:权值。例如,如果带权图的顶点代表城市,边的权可能代表城市之间的距离,或者城市之间的路费,或者之间的车流量等等。带权图归根究底还是图,前一篇文章中那些图的基本操作,例如广度优先搜索和深度优先搜索等都是一样的,本文主要来探讨一下... 这是一篇技术文,继续提升一下我们的内功。从之前一篇文章:我敢说,这图绝对跟你想象中的不太一样!。可以看到,图的边可以有方向,那么这一篇文章,我们来探讨一下边的另一个特性:权值。例如,如果带权图的顶点代表城市,边的权可能代表城市之间的距离,或者城市之间的路费,或者之间的车流量等等。带权图归根究底还是图,前一篇文章中那些图的基本操作,例如广度优先搜索和深度优先搜索等都是一样的,本文主要来探讨一下...
- 我没骗你们,这个图的确不是你想象中的图。你想看什么图我还不知道? 不过,我的图却是大千世界,继续以通俗易懂的方式给你提升一波内功。不信你继续往下读。图是一种与树有些相像的数据结构,实际上,从数学意义上说,树是图的一种。然而在计算机程序设计中,图的应用方式与树不同。我前面一些文章中讨论的数据结构都有一个框架,这个框架都是由相应的算法设定的。比如说,二叉树是那样一个形状,就是因为那样的形状使它更... 我没骗你们,这个图的确不是你想象中的图。你想看什么图我还不知道? 不过,我的图却是大千世界,继续以通俗易懂的方式给你提升一波内功。不信你继续往下读。图是一种与树有些相像的数据结构,实际上,从数学意义上说,树是图的一种。然而在计算机程序设计中,图的应用方式与树不同。我前面一些文章中讨论的数据结构都有一个框架,这个框架都是由相应的算法设定的。比如说,二叉树是那样一个形状,就是因为那样的形状使它更...
- 说到堆这种数据结构,很多人的第一反应是感觉很复杂,其实不然,堆就是个优先级队列而已,或者,堆其实就是一种树。本文先讲原理,后面给出堆的实现代码。优先级队列可以用有序数组来实现,这种做法的问题是,尽管删除最大数据项的时间复杂度为O(1),但是插入还是需要较长的O(N)时间,这是因为必须移动数组中平均一半的数据项以插入新数据项,并在完成插入后,数组依然有序。本文主要介绍实现优先级队列的另一种结构... 说到堆这种数据结构,很多人的第一反应是感觉很复杂,其实不然,堆就是个优先级队列而已,或者,堆其实就是一种树。本文先讲原理,后面给出堆的实现代码。优先级队列可以用有序数组来实现,这种做法的问题是,尽管删除最大数据项的时间复杂度为O(1),但是插入还是需要较长的O(N)时间,这是因为必须移动数组中平均一半的数据项以插入新数据项,并在完成插入后,数组依然有序。本文主要介绍实现优先级队列的另一种结构...
- 昨天跟一个CSDN上的朋友聊天,他说现在如果让他自己手写一个栈或者队列,估计都要写蛮久的,平时虽然都在用,但是都是别人封装好的集合。确实,经典的数据结构,包括排序算法,虽然我们平时不用手写了,但是这些内功,作为开发人员来说是必须要掌握的。受此启发,我打算更一下经典数据结构和算法的系列文章。今天先从栈和队列说起。这些东西,挤地铁时,吃饭排队时,等公交时,可以拿来看看,或者,就把它当作个下午茶吧... 昨天跟一个CSDN上的朋友聊天,他说现在如果让他自己手写一个栈或者队列,估计都要写蛮久的,平时虽然都在用,但是都是别人封装好的集合。确实,经典的数据结构,包括排序算法,虽然我们平时不用手写了,但是这些内功,作为开发人员来说是必须要掌握的。受此启发,我打算更一下经典数据结构和算法的系列文章。今天先从栈和队列说起。这些东西,挤地铁时,吃饭排队时,等公交时,可以拿来看看,或者,就把它当作个下午茶吧...
- 今天带各位回顾一下线性数据结构:数组、链表、栈、队列,相信通过下面的文字,你会加深对这几种数据结构的认识。一 数组数组(Array) 是一种很常见的数据结构。它是由相同类型的元素(element)的集合所组成,并且被分配一块连续的内存来存储(与链表对比)。利用元素的索引(index)可以计算出该元素对应的存储地址。它的特点是提供随机访问并且容量有限。假如数组的长度为 n。访问:O(1)//访... 今天带各位回顾一下线性数据结构:数组、链表、栈、队列,相信通过下面的文字,你会加深对这几种数据结构的认识。一 数组数组(Array) 是一种很常见的数据结构。它是由相同类型的元素(element)的集合所组成,并且被分配一块连续的内存来存储(与链表对比)。利用元素的索引(index)可以计算出该元素对应的存储地址。它的特点是提供随机访问并且容量有限。假如数组的长度为 n。访问:O(1)//访...
- 追梦赤子心鹿晗 - 追梦赤子心随着互联网时代的飞速发展,越来越多的人投身于软件开发行业,大家都称他们为程序员,或者码农。这些程序员的水平也是参差不齐的,有些人从比较好的学校毕业,水平却一般般;也有些人从一般搬的学校毕业,但是水平很高,因为他们付出了比其他人更多的努力;也有些人,不管是好学校还是差学校,毕业了都跑去培训班培训了,出来的也是良莠不齐的。今天这篇文章,我们不从这些客观因素上去分析,... 追梦赤子心鹿晗 - 追梦赤子心随着互联网时代的飞速发展,越来越多的人投身于软件开发行业,大家都称他们为程序员,或者码农。这些程序员的水平也是参差不齐的,有些人从比较好的学校毕业,水平却一般般;也有些人从一般搬的学校毕业,但是水平很高,因为他们付出了比其他人更多的努力;也有些人,不管是好学校还是差学校,毕业了都跑去培训班培训了,出来的也是良莠不齐的。今天这篇文章,我们不从这些客观因素上去分析,...
- 今年5月,小灰出版了《漫画算法》这本纸质书。在今年年中,本书获得【京东科技新书畅销榜】第1名,【京东科技畅销榜】第4名,非常感谢大家的支持!但是有一点美中不足,小灰的这本《漫画算法》在当时只有纸质书,许多小伙伴问我有没有Kindle版的电子书,很遗憾当时还没有出电子书的计划。而今天,小灰要告诉大家一个好消息,《漫画算法》出Kindle电子版了!电子版的内容和纸质书完全相同,而且修正了第一次印... 今年5月,小灰出版了《漫画算法》这本纸质书。在今年年中,本书获得【京东科技新书畅销榜】第1名,【京东科技畅销榜】第4名,非常感谢大家的支持!但是有一点美中不足,小灰的这本《漫画算法》在当时只有纸质书,许多小伙伴问我有没有Kindle版的电子书,很遗憾当时还没有出电子书的计划。而今天,小灰要告诉大家一个好消息,《漫画算法》出Kindle电子版了!电子版的内容和纸质书完全相同,而且修正了第一次印...
- 参与文末话题讨论,每日赠送异步图书——异步小编作为软件开发人员,在面对全新的任务和挑战时,我们常常会将这些问题分解为自己所熟知的各类解决方案和代码片段,并根据客户需求和任务截止日期,制定最快的方案进行开发。但是,这样做只是单纯地完成了工作要求,有时对于学到更多的开发技巧和理念从而成为一名更优秀、更高效的开发者的帮助并没有想象中的那么大。为什么要学习数据结构?在计算机发展的初期,人们使用计算机... 参与文末话题讨论,每日赠送异步图书——异步小编作为软件开发人员,在面对全新的任务和挑战时,我们常常会将这些问题分解为自己所熟知的各类解决方案和代码片段,并根据客户需求和任务截止日期,制定最快的方案进行开发。但是,这样做只是单纯地完成了工作要求,有时对于学到更多的开发技巧和理念从而成为一名更优秀、更高效的开发者的帮助并没有想象中的那么大。为什么要学习数据结构?在计算机发展的初期,人们使用计算机...
- 本节书摘来自清华大学出版社《Hadoop权威指南:大数据的存储与分析》一书中第五章,第5.4.1节,作者是Tom White , 王 海 华 东 刘 喻 吕粤海 译。 本节书摘来自清华大学出版社《Hadoop权威指南:大数据的存储与分析》一书中第五章,第5.4.1节,作者是Tom White , 王 海 华 东 刘 喻 吕粤海 译。
- 本节书摘来自清华大学出版社《C#编程入门与应用》一书中第三章,第3.4.2节,作者是李 鑫 祝惠娟。 本节书摘来自清华大学出版社《C#编程入门与应用》一书中第三章,第3.4.2节,作者是李 鑫 祝惠娟。
- 本节书摘来自清华大学出版社《C#编程入门与应用》一书中第三章,第3.4.1节,作者是李 鑫 祝惠娟。 本节书摘来自清华大学出版社《C#编程入门与应用》一书中第三章,第3.4.1节,作者是李 鑫 祝惠娟。
- 本节书摘来自清华大学出版社《C#编程入门与应用》一书中第三章,第3.3.2节,作者是李 鑫 祝惠娟。 本节书摘来自清华大学出版社《C#编程入门与应用》一书中第三章,第3.3.2节,作者是李 鑫 祝惠娟。
- 本节书摘来自清华大学出版社《C#编程入门与应用》一书中第三章,第3.3.1节,作者是李 鑫 祝惠娟。 本节书摘来自清华大学出版社《C#编程入门与应用》一书中第三章,第3.3.1节,作者是李 鑫 祝惠娟。
- 算法是什么?可能大多数读者都不能准确地给算法下一个定义。其实在日常生活中,我们已经在无意中接触过算法,通过本文,让我们更加深入地领略算法的奥妙!我们首先介绍算法的基本概念以及它的重要性。接着,我们通过两个整数相乘的问题来说明精妙的算法是怎样改进那些简单或粗糙的解决方案的。然后,我们详细讨论了归并排序算法。之所以选择这个算法是出于下面这些理由:首先,它是一种非常实用并且非常有名的算法,是读者应... 算法是什么?可能大多数读者都不能准确地给算法下一个定义。其实在日常生活中,我们已经在无意中接触过算法,通过本文,让我们更加深入地领略算法的奥妙!我们首先介绍算法的基本概念以及它的重要性。接着,我们通过两个整数相乘的问题来说明精妙的算法是怎样改进那些简单或粗糙的解决方案的。然后,我们详细讨论了归并排序算法。之所以选择这个算法是出于下面这些理由:首先,它是一种非常实用并且非常有名的算法,是读者应...
上滑加载中
推荐直播
-
华为云师资培训——《软件工程》课程
2025/08/05 周二 15:00-16:30
Pamela - PaaS开发者支持讲师
华为云师资培训直播,带您掌握产业级软件工程课程体系与华为开发者空间实战能力,助力高校数字化转型!
回顾中 -
大模型赋能开发者社区生态建设
2025/08/05 周二 20:00-21:00
上海交通大学教授曹健
当AI技术重构开发者生态,社区建设如何跳出“流量陷阱”,回归价值本质?本次直播特邀深耕开发者社区研究的专家,上海交通大学教授曹健老师,通过 “社区生态三维模型”(价值共生、技术赋能、情感联结)的核心理论,拆解AI时代社区建设的底层逻辑。如何用AI工具降低参与门槛,让技术交流从“精英圈层”走向“普惠共生”?怎样通过算法优化内容匹配,让社区资源精准触达开发者真实需求?当机器逐渐承担基础协作,社区如何强化“人与人”的情感认同,避免沦为冰冷的技术工具库?
回顾中
热门标签