脚本中的实现似乎和课上讲的有些地方不太一样?
1.课上说最佳匹配和最差匹配是把freelist按照size升序或降序排好序,然后找的时候最佳匹配只需要找到第一个比自己大的,最差匹配只需要用第一个作比较。但脚本里是全都把列表遍历了一遍。
2.课上说的最佳匹配和最差匹配的释放内存后合并的方法,是遍历查找与释放掉的内存地址相邻的内存区域。但脚本里是遍历列表,当且仅当列表顺序的第i+1个区域紧挨在第i个区域的后边时才合并。而且合并完也没有什么调整顺序的过程。
也就是说这两种方式在数据结构维护上各自的优缺点基本上在脚本中都没有体现出来,不知道课后练习可以怎么根据脚本给出的例子进行分析呢?