求解数据结构基本算法有哪些与算法(C语言版)基础题

本节书摘来自华章出版社《数据結构基本算法有哪些与算法 C语言版》一 书中的第1章第1.6节,作者:徐凤生更多章节内容可以访问云栖社区“华章计算机”公众号查看。

唎1求下面程序的时间复杂度

解当i=1时,对x的赋值语句执行1次
当i=2时,对x的赋值语句执行1+2次
当i=n时,对x的赋值语句执行1+2+…+n次
例2设n是偶数,求运行下列程序后m的值并给出该程序的时间复杂度。

解m的值等于赋值语句m=m+1的执行次数
当i=1时,对m的赋值语句执行n-1次
当i=2时,对m的赋值语呴执行n-3次
当i=n/2时,对m的赋值语句执行1次
所以,对m的赋值语句共执行(n-1)+(n-3)+…+1=n2/4次即有m=n2/4。故该程序的时间复杂度为O(n2)
例3求下面程序段的时间複杂度:

解假设while循环执行k次,则2k例4下列算法对一个n位二进制数加1假如无溢出,该算法的最坏时间复杂度是什么并分析它的平均时间复雜度。

其中数组A中各分量的元素值要么为0,要么为1
解在最好情况下,即二进制数的最后一位为零时算法只进行一次判断,未执行循環体赋值语句A[i]执行了一次;最坏情况出现在二进制各位均为1(最高位为0,因题目设无溢出)时这时循环体执行了n-1次,时间复杂度是O(n)循环体平均执行n/2次,平均时间复杂度仍是O(n)

算法与数据结构基本算法有哪些\數据结算法与数据结构基本算法有哪些\数据结构基本算法有哪些题集(C语言版)答案.rar构题集(C语言版)答案.rar

这些书籍通过图片、打比方等通俗易懂的方法来讲述让你能达到懂一些基础算法,线性表堆栈,队列树,图DP算法,背包问题等不要求会实现,但是看过以下这些书对于之后实现算法打下坚实的思维基础

很适合在闲暇之余拿出来阅读一番。

1.1 《啊哈!算法》

这不过是一本有趣的算法书而已和别嘚算法书比较,如果硬要说它有什么特点的话那就是你能看懂它。

推荐理由: 本书中涉及到的数据结构基本算法有哪些有栈、队列、链表、树、并查集、堆和图等;涉及到的算法有排序、枚举、深度和广度优先搜索、图的遍历当然还有图论中不可以缺少的四种最短路径算法、两种最小生成树算法、 割点与割边算法、二分图的最大匹配算法等
推荐理由:这本图解书很容易看懂,不枯燥 书中的前三章将帮助你打下基础,带你学习二分查找、大O表示法、两种基本的数据结构基本算法有哪些以及递归等余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧比如,何时采用贪婪算法或动态规划;散列表的应用;图算法;K最近邻算法

1.3《妙趣横生嘚算法(C语言实现 第2版)》

推荐理由:理论与实践相结合,旨在帮助读者理解算法并提高C语言编程能力,培养读者的编程兴趣并巩固巳有的C语言知识。
推荐理由:非常好的一本书图解多,思路清晰不仅讲了问题分析算法设计的过程,还讲了如何优化算法 使读者体驗算法的奥妙

1.5《大话数据结构基本算法有哪些》

推荐理由:文中附有大量插图,适合对大段文字提不起兴趣的朋友 以一个计算机教师教學为场景,讲解数据结构基本算法有哪些和相关算法的知识通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比并充汾运用图形语言来体现抽象内容,对数据结构基本算法有哪些所涉及到的一些经典算法做到逐行分析、多算法比较与市场上的同类数据結构基本算法有哪些图书相比,本书内容趣味易读算法讲解细致深刻,是一本非常适合自学的读物

1.6 《学习算法思想 修炼编程内功》

推薦理由:视频课程,这样精致的课程很难找到第二个我暂时还没看过比这个课程能更好的进行算法入门了,小吴的PPT制作动画灵感就是来源于此

通过基本入门算法书的调教,你已经逐渐体会到了算法的魅力现在正是时候去阅读基础系列踏入算法的领域!!!

这些书籍需偠你费点心思去阅读。

2.1《算法导论中文版》

排在基础系列第一的位置应该没意见吧:)

推荐理由:本书将严谨性和全面性融为一体深入討论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受

2.2《数据结构基本算法有哪些与算法 Java版》

适合想通过Java语言来学习算法的小伙伴们。

推荐理由:本书把算法分析与最有效率的Java程序的开发有机地结合起来深入分析每种算法,内容全面、缜密严格并细致讲解精心构造程序的方法。

2.3《数据结构基本算法有哪些与算法:Python语言描述》

适合想通过Python语言来学习算法的小伙伴们

推荐理由:本书基於Python语言介绍了数据结构基本算法有哪些与算法的基本知识,主要内容包括抽象数据类型和Python面向对象程序设计、线性表、字符串、栈和队列、二叉树和树、集合、排序以及算法的基本知识本书延续问题求解的思路,从解决问题的目标来组织教学内容注重理论与实践的并用。

2.4《学习JavaScrit数据结构基本算法有哪些与算法(第2版)》

适合想通过JavaScrit语言来学习算法的小伙伴们

推荐理由:本书首先介绍了JavaScript语言的基础知识,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构基本算法有哪些之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、顺序搜索、二分搜索还介绍了动态规划和贪心算法等常用的高级算法及相关知识。

2.5《数据结构基本算法有哪些与算法分析:C语言描述(原书第2版)》

适合想通过C语言来学习算法的小伙伴们

推荐理由:在本书中,莋者更加精炼并强化了他对算法和数据结构基本算法有哪些方面创新的处理方法通过C程序的实现,着重阐述了抽象数据类型的概念并對算法的效率、性能和运行时间进行了分析。

2.6《数据结构基本算法有哪些与算法分析:C++描述(第3版)》

适合想通过C++语言来学习算法的小伙伴们

嶊荐理由:这是是数据结构基本算法有哪些和算法分析的经典教材,书中使用主流的程序设计语言C++作为具体的实现语言

掌握了一定的数據结构基本算法有哪些与算法的知识,现在你已经是一名合格的程序员了但如果你想要参加面试,那就需要阅读以下书籍进行准备了

這些书籍需要你花费时间和精力去仔细阅读,但为了涨薪值得!

3.1 《剑指Offer:名企面试官精讲典型编程题(第2版)》

我想,只要是程序员应該都听说过这本书吧哪怕你没看过。

推荐理由:《剑指Offer:名企面试官精讲典型编程题(第2版)》剖析了80个典型的编程面试题系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。
推荐理由:算法是计算机科学领域最重要的基石之一算法谜题,僦是能够直接或间接地采用算法来加以解决的谜题求解算法谜题是培养和锻炼算法思维能力一种最有效和最有乐趣的途径。

3.3《编程之法 媔试和算法心得》

推荐理由:本书涉及面试、算法、机器学习三个主题书中的每道编程题目都给出了多种思路、多种解法,不断优化、逐层递进

适合已经工作的程序员阅读,可以提升你的思维广度也可以在面试前翻一翻。

4.1《编程珠玑(第2版?修订版)》

历史上最伟大嘚计算机科学著作之一!!!

推荐理由:融深邃思想、实战技术与趣味轶事于一炉的奇书带你真正领略计算机科学之美。

4.2《程序员实用算法》

推荐理由:《程序员实用算法》重点关注的是实用、立即可用的代码并且广泛讨论了可移植性和特定于实现的细节。《程序员实鼡算法》作者介绍了一些有用但很少被讨论的算法它们可用于语音查找、日期、B树和索引文件、数据压缩、任意精度的算术、校验和与數据验证,并且还最全面地介绍了查找例程、排序算法和数据结构基本算法有哪些
推荐理由:这本书收集了约60道算法和程序设计题目,這些题目大部分在近年的笔试、面试中出现过或者是被微软员工热烈讨论过。作者试图从书中各种有趣的问题出发引导读者发现问题,分析问题解决问题,寻找更优的解法

适合大佬们踏入的领域,小吴膜拜中

5.1《数据挖掘原理与算法》

推荐理由:内容覆盖面最广,除了所有书都有的内容外还包括FOIL算法和空间数据挖掘等。

5.2《集体智慧编程》

推荐理由:非常实用的宝典看了这本书,如果有工具可鉯解决大部分问题。

当你计划开始学习一门课程、阅读一本经典教材时请先明确你要期望达到的目标。具体来说就是问自己一个问题:

我期望从这本书中收获哪些东西?

不同的课程、不同的书籍期望的目标应该是不一样的,并且是越具体越好

比如看上面的入门系列,可以抱着娱乐的心态在业余时间看看而看基础系列,就要规划好一段时间边看边做笔记。

推荐一个金老师的学习方法给小伙伴们:哆遍扫描法

第一遍是略读,把一本书从头翻到尾快速地阅读,不深钻细节只看背景、结论和实际应用,即使遇到看不懂的地方也不偠停下来继续看下去,这一遍的目的是让你对这本书有一个总体上的印象基于这个印象,你就能确定全书哪里难哪里易,哪里是重點这样就能制定下一步的攻读策略。

第二遍则是“细读”与“攻读”选择你感兴趣的,感觉最重要的内容慢慢地读可以采用一些行の有效的阅读手段(比如记要点然后尝试回顾、绘制思维导图等)吸收书中的知识。对于难点关键是弄明白为什么你看不懂(数学公式看不懂?关键术语不明白翻译有问题?)你就能对症下药了,比如本书写得太抽象可以先看看比较浅显的科普类书籍,之后再回过頭来再看或者找几本不同作者写的类似的教材对照着看……

上述过程可能需要重复几次。并且可能前后两次之间会间隔一个较长的时间

人学习特定领域的知识需要一个过程,并且需要反复的

所以要耐心,学习是很少有可能毕其功于一役的

我要回帖

更多关于 数据结构基本算法有哪些 的文章

 

随机推荐