清华大学慕课下载:数据结构
类型:公开课
主讲人:韩永楷是目前任教于国立清华大学的电资院教授,主要研究领域为资料结构、演算法。从小在香港长大,经历英国制度。小时候热爱数学,而在求学中发现自己真心喜欢数学。大学的时候因学姐缘故而接触计算机科学,并开始学习与研究。后来发现自己对写程式没有太大的兴趣,也不太喜欢计算机结构,但对于演算法有极大的兴趣,所以研究所都在专研演算法,而在博士时因为生物资讯演算法研究感到迷惘,后来选择去新加坡国立大学跟随宋永健教授作研究。绰号为楷哥。
2006年到国立清华大学,目前已经有15个年头了(2021年)。印象深刻的为2006年到2010年所研究的Google 类型,当时也经常前往美国作研究。大部分研究都在做字串搜寻演算法。近年来,想着手做稍微不一样的研究,于是在2019年开始做的网络传输。网络传输有挑战,每个通路都要确认,大家不一定彼此信赖。
研究领域:韩永楷教授的第一个研究为演算法中的tree问题,此研究为探讨如何排列才能得到最扁的状况,并发现高度与平均degree(分支)的关联性。虽然这是个很普通的研究,既简单也浅显易懂,是个大家都可以看懂的研究。但对韩永楷教授意义重大,对他日后有所帮助,也是他认为最有趣的一项研究。
普渡大学所进行的Google类型文件搜寻的相关研究能做到省空间速度又够快,且是学术界第一个想到这类问题的研究,所以研究有一直再被延伸。
而韩永楷教授认为最重要的研究为博士论文。当时因老板想将项目的存取空间压小,所以利用简单的演算法,并将时间复杂度从nlogn 变成nloglogn。
发表论文:(2011) Inverted Indexes for Phrases and Strings 片語和字串的倒排索引
(2009) Breaking a Time-and-Space Barrier for Constructing Full-Text Indices
(2009) Space-Efficient Framework for Top-k String Retrieval Problems
(2008) Geometric Burrows-Wheeler Transform: Linking Range Searching and Text Indexing
(2007) A Space and Time Efficient Algorithm for Constructing Compressed Suffix Arrays
(2007) Compressed Indexes for Dynamic Text Collections
荣誉与奖励:
国立清华大学97学年度校教师杰出教学奖-资工系 [11]
国立清华大学99学年度电资院杰出教学奖[12]
国立清华大学99学年度电资院新进人员研究奖[13]
国立清华大学106学年度校教师杰出教学奖-资工系[14]
国立清华大学2018最佳期刊论文奖[15]
得奖论文:[Algorithmica]Dictionary Matching with a Bounded Gap in Pattern or in Text(Wing-Kai Hon(韩永楷), Tak-Wah Lam, Rahul Shah, Sharma V. Thankachan, Hing-Fung Ting, Yilin Yang, 80(2), Algorithmica, 2018, pp. 698–713)
学院介绍:新竹清华大学,一般指台湾清华大学。台湾清华大学的前身为1911年在北京设立的清华学堂,1925年设立大学部,在抗日战争期间,西迁至云南昆明,与当时的国立北京大学、私立南开大学合组成国立西南联合大学。1949年1月10日,北平军管会文化接管委员会主任钱俊瑞到校,正式宣布接管清华大学。1955年,台湾清华大学设立在台湾省新竹市。台湾清华大学首设台湾清华大学原子科学研究所,1964年恢复大学部。2016年11月1日台湾新竹教育大学并入台湾清华大学。北京清华大学与新竹清华大学现双方合作MOOC课程、学术访问制度及双联学位课程,并与厦门市三方共建“清华海峡研究院”,促进两岸学术及文化交流。
课程介绍:“数据结构”是学习以聪明的方法去储存数据,使得我们在有需要的时候能够快速有效地把数据撷取。例如我们希望把学生某一科的考试成绩整理,使得我们能随时查询任何学生的排名。为了节省查询的时间,我们或许会把学生们的成绩从高至低排好,而不会以随意的顺序排列。(对此问题,其实还有一个更好的方法呢!)在此课程,我们将针对各种基本的数据结构,进行理论探讨及分析,并辅以适量的程序训练,加强学生对数据结构实际应用的掌握。本课程目标是帮助学生学得下列观念和能力: 1. 各种基本数据结构的认识。2. 透过实作数据结构让同学对所学有更深刻的了解,并加强同学写程式的训练。3. 用数据结构配合基本的演算法来解决问题。4. 本课程将透过OJ (Online Judge) 程式判读功能进行测验。
本课程由台湾新竹清华大学提供,因课程视频由主讲教师录制并上传,凡课程视频中“国立清华大学”均指“台湾新竹清华大学”。
课程列表:
【第1集】台湾清华大学公开课:排序的方法和分析 译
【第2集】台湾清华大学公开课:排序方法的分析 译
【第3集】台湾清华大学公开课:函数时间复杂度 译
【第4集】台湾清华大学公开课:插入排序 上机 译
【第5集】台湾清华大学公开课:堆排序1 译
【第6集】台湾清华大学公开课:堆排序2 译
【第7集】台湾清华大学公开课:比较排序的复杂度下界-1 译
【第8集】台湾清华大学公开课:比较排序的复杂度下界-2 译
【第9集】台湾清华大学公开课:C语言中的指针 译
【第10集】台湾清华大学公开课:基本数据结构I-1 译
【第11集】台湾清华大学公开课:基本数据结构I-2 译
【第12集】台湾清华大学公开课:约瑟夫问题 上机 译
【第13集】台湾清华大学公开课:括号完全匹配 上机 译
【第14集】台湾清华大学公开课:链表上机-插入元素 译
【第15集】台湾清华大学公开课:链表上机-删除元素 译
【第16集】台湾清华大学公开课:树&图 译
【第17集】台湾清华大学公开课:广度优先遍历 译
【第18集】台湾清华大学公开课:深度优先遍历 译
【第19集】台湾清华大学公开课:深度优先遍历分析 译
【第20集】台湾清华大学公开课:树的遍历 译
【第21集】台湾清华大学公开课:表达式树&后缀表达式 译
【第22集】台湾清华大学公开课:中缀-后缀表达式转换 译
【第23集】台湾清华大学公开课:拓扑排序 译
【第24集】台湾清华大学公开课:拓扑排序的证明 译
【第25集】台湾清华大学公开课:两道智力题 译
【第26集】台湾清华大学公开课:二叉搜索树 译
【第27集】台湾清华大学公开课:二叉搜索树 实现 (找最大/找最小) 译
【第28集】台湾清华大学公开课:二叉搜索树 实现 搜索给定元素(前驱) 译
【第29集】台湾清华大学公开课:二叉搜索树 实现(插入/删除) 译
【第30集】台湾清华大学公开课:二叉搜索树 实现(删除)-案例1&2 译
【第31集】台湾清华大学公开课:二叉搜索树 实现(删除)-案例3 译
【第32集】台湾清华大学公开课:二叉搜索树 上机 插入 译
【第33集】台湾清华大学公开课:二叉搜索树上机 删除-1 译
【第34集】台湾清华大学公开课:二叉搜索树上机 删除-2 译
【第35集】台湾清华大学公开课:二叉搜索树上机 3 译
【第36集】台湾清华大学公开课:平衡二叉树 译
【第37集】台湾清华大学公开课:平衡二叉树-旋转 译
【第38集】台湾清华大学公开课:平衡二叉树-插入 译
【第39集】台湾清华大学公开课:平衡二叉树-插入实现 案例2.2 译
【第40集】台湾清华大学公开课:平衡二叉树-插入实现 案例2.3 译
【第41集】台湾清华大学公开课:平衡二叉树-插入补充&删除 译
【第42集】台湾清华大学公开课:数据结构增强 译
【第43集】台湾清华大学公开课:B-树 外存模型 译
【第44集】台湾清华大学公开课:B-树 插入 译
【第45集】台湾清华大学公开课:B-树 删除 译
【第46集】台湾清华大学公开课:哈希 译
【第47集】台湾清华大学公开课:常见的哈希函数 译
【第48集】台湾清华大学公开课:为字符串创建索引&后缀数组 译