通过改写算法获得数据结构学习的更佳效果

【事件】
  某名数据结构基础网络学员在“单链表的基本算法”部分连问两个问题:

老师,我while语句里面j<i-1改为j<i,else里面直接q=p可以么?
老师,你这样万一刚好q->next==NULL呢,这样没影响吧?

  我的“即时”回答,也已经是10个小时之后了,我不知道他看到解答后,状态还在不在。另外,这种问题,并非是可以、不行就简单回答的,背后很细致的考量,用有限的文字根本说不清楚。
  这名认真学习、主动思考的学员,此时需要的是在学习方法上的改进。这是比搞懂某算法细节更重要的事。行不行?有没有影响?运行并测试程序一验证就见分晓。算法一处改动,往往别处也得有动作,更具价值的“改算法”学习环节,立刻就可以实施。
  于是,有了下面的指导语——
  
【答复】
  你学得很细,我特别欣赏。你在学习过程中,能主动思考并且想到的问题也都在点上,这又是一个非常难得的学习品质。回答你“行不行”、“可以吗”的问题,实际上,我基本都会告诉你可以,背后是,算法的其他位置处也需要给出更改。所以,在“可以”或“不可以”的后面,我们关注的真正核心是这个地方改了以后,其他地方如何随之变化。在算法学习过程中,“理解已有的算法”是基本的层次,而你的学习就此可以进入“改写已有算法”的层次。鉴于网络学习的特点,我不可能给你实时的指导,我更愿意借此让你在方法上更进一步,将这种“改写”发展到极致,促进你综合能力的提高。
  具体做法是,在看视频的过程中,将这些疑点记录下来,而后,通过上机调试算法的实现代码并进行测试,这样下来,这类的问题将自主解决,价值远甚于现在的方式。 你可以到课程主页中去,那里有所有的章节的算法实现源代码,以及附加的实践项目。
  利用这些资源,你可以方便地按上面的方法开展学习。 你还可以点链接…,进入后点学生名字中的链接,看我在学校教学中我的学生的学习情况,他们在我的面授指导和组织下,也在用同样的资源和方案学习,很显然,你这名网络学生也按同样的进程就可以学下去。
  相信你这样能将数据结构学得更加扎实!

时间: 2024-10-24 16:22:20

通过改写算法获得数据结构学习的更佳效果的相关文章

Medium网友开发了一款应用程序 让学习算法和数据结构变得更有趣

CS-Playground-React接口 CS-Playground-React地址:http://cs-playground-react.surge.sh/ Medium网友Peter Weinberg的自述:我是一名自学成才的程序员.我觉得自己做得不够好,并且在掌握复杂的计算机科学概念方面处于劣势. 我对数学不是十分擅长.我总是把强大的数学技巧和天生擅长编程的能力联系在了一起.我觉得我必须比其他人(他们有天生的数学能力)更努力地学习相同的概念.这个想法深深扎根在我的大脑中,我很确定我永远无

浅谈雕刻机行业网络营销如何达到更佳效果

中介交易 SEO诊断 淘宝客 云主机 技术大厅 跟大多数机械行业一样,雕刻机行业越来越依赖于网络营销.目前至少有500家雕刻机企业在网络上拼杀,雕刻机行业相关关键字的竞价排名价格也都达到了5-10元.而且某些企业招聘了30人以上的团队,天天在网上发布免费的供求信息,但是成效不大. 笔者关于雕刻机行业的网络营销有几点建议: 一.如何通过百度推广赢得订单:做百度推广是最直接的网销方式.但是,投入百度推广的厂家这么多,如何赢得客户的青睐,获取订单呢?这就需要您的网站有足够的吸引力.现在雕刻机各个厂家的

021_《Delphi算法与数据结构》

<Delphi算法与数据结构> Delphi 教程 系列书籍 (021) <Delphi算法与数据结构> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Pdf 附书源码     原书名: The Tomes of Delphi Algorithms and Data Structures 原出版社: Wordware Publishing 作者: [美]Julian Bucknall 译者: 林琪 朱涛江 丛书名: Delphi技术系列 出版社:中国电力

纸上谈兵: 算法与数据结构

算法和数据结构是计算机科学的核心内容.作为程序员,编程是我们的实战项目.然而,写出程序还不够.一个程序在应对一些大型而复杂的情况时,会耗费大量的时间.我们可以很容易写出一个从文件中找到一个词的程序,比如逐词扫描,看是否相符.但如果我们的文件有几十TB,而且要从文件中找到上百个词,逐个扫描的办法就几乎不可行.我们需要优化程序,以便我们的程序可以应对复杂问题.算法研究解决问题的方法,而数据结构则是设计一种更好的组织数据和使用数据的方式.两者有很强的相互依赖关系,所以往往放在一起讨论.   我将这一系

浅谈算法和数据结构 十一 哈希表

在前面的系列文章中,依次介绍了基于无序列表的顺序查找,基于有序数组的二分查找,平衡查找树,以及红黑树,下图是他们在平均以及最差情况下的时间复杂度: 可以看到在时间复杂度上,红黑树在平均情况下插入,查找以及删除上都达到了lgN的时间复杂度. 那么有没有查找效率更高的数据结构呢,答案就是本文接下来要介绍了散列表,也叫哈希表(Hash Table) 什么是哈希表 哈希表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值. 哈希的思路很简单

浅谈算法和数据结构 二 基本排序算法

本篇开始学习排序算法.排序与我们日常生活中息息相关,比如,我们要从电话簿中找到某个联系人首先会按照姓氏排序.买火车票会按照出发时间或者时长排序.买东西会按照销量或者好评度排序.查找文件会按照修改时间排序等等.在计算机程序设计中,排序和查找也是最基本的算法,很多其他的算法都是以排序算法为基础,在一般的数据处理或分析中,通常第一步就是进行排序,比如说二分查找,首先要对数据进行排序.在Donald Knuth 的计算机程序设计的艺术这四卷书中,有一卷是专门介绍排序和查找的. 排序的算法有很多,在维基百

浅谈算法和数据结构 一 栈和队列

最近晚上在家里看Algorithems,4th Edition,我买的英文版,觉得这本书写的比较浅显易懂,而且"图码并茂",趁着这次机会打算好好学习做做笔记,这样也会印象深刻,这也是写这一系列文章的原因.另外普林斯顿大学在Coursera 上也有这本书同步的公开课,还有另外一门算法分析课,这门课程的作者也是这本书的作者,两门课都挺不错的. 计算机程序离不开算法和数据结构,本文简单介绍栈(Stack)和队列(Queue)的实现,.NET中与之相关的数据结构,典型应用等,希望能加深自己对这

字符串搜索-Boyer-Moore算法 《数据结构与算法c++版》Adam Drozdek

问题描述 Boyer-Moore算法 <数据结构与算法c++版>Adam Drozdek 通常BM算法采用的是坏字符和好后缀算法(eg.,BM算法),我学习的<数据结构与算法c++版>Adam Drozdek版教材上使用了 全后缀和部分后缀规则,这种方法在网络上基本查不到. 作者解释原理时,一个关键的函数只是给出公式,基本上没有解释,如下: 请问怎么理解这个公式,尤其是公式中的s代表什么意思? 原书我已经在云盘共享,关于BM算法书上在P687面.希望能帮忙解决.

求指点-求推荐:c,C++,算法,数据结构,编写简单游戏等方面的书籍。

问题描述 求推荐:c,C++,算法,数据结构,编写简单游戏等方面的书籍. 我是大一的,刚刚学完谭浩强的C,现在正在学开始谭浩强的C++.希望大家能够给一些建议:推荐一些书籍.谢谢 解决方案 说实话不推荐学习谭浩强的那两本书,别问为什么,因为你如果刚学的话,体会不到我说的,但是如果已经看完了,其实如果你只看了他的书的话,估计你啥也做不了,常见的C语言小程序,列入俄罗斯方块,贪吃蛇,扫雷,等等这些,不过提醒你,我给你你个关键词:1.函数 2.指针 3.链表 4.函数指针 5.数组 6.结构体 指针数