爱问知识人 爱问教育 医院库

发现自己编程方面问题很严重,看数据结构,一遇到递归,就比如说归并算法,看了2个多小时死活看不懂,大

首页

发现自己编程方面问题很严重,看数据结构,一遇到递归,就比如说归并算法,看了2个多小时死活看不懂,大

发现自己编程方面问题很严重,看数据结构,一遇到递归,就比如说归并算法,看了2个多小时死活看不懂,大家有没有什么好的方法?谢谢

提交回答

全部答案

    2018-05-09 20:03:45
  •   对于归并算法,看不懂的话一般是因为没理解什么是归并,为什么用归并。我先给你通俗的说一下这个算法的含义,然后你再看你的教材或者代码实现,相对就好理解了。
    归并算法一开始是为了大数据和并行计算而开发出来的,当一段需要排序的数据量非常大的时候,大到内存都装不下了(早期的计算机内存很小,只有KB级别,很容易出现这种现象),这时可以用归并算法,先把这段大数据分成两个或两个以上的数据段,然后先分别对每个数据段进行排序,再把这些排好序的小数据段一个一个的组合起来,组合的时候再排一次序,等到所有的小数据段都被组合了之后,就恢复成了原来的大数据,但是排好序了。
      在对小数据段分别进行排序的时候,因为它们之间是相互独立的,因此可以用并行计算来加快速度。所以归并算法在早期使用分布计算的时候,或者现在使用多核计算机的时候,速度很快。
    对于递归这种思路,其实它就是一种纵深锚点思维能力,可以通过训练来加强。
      方法很简单,就是训练找锚点的能力,锚点就是递归中的返回条件。找准了锚点,递归的过程是不用考虑的,有多少层的递归调用都不用理会,只要明白什么条件下会结束递归、层层返回就行了。

    永***

    2018-05-09 20:03:45

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 169-188
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):