为什么我感觉看数据结构C语言版的一点都看懂、放下书就忘啊???
4个回答
展开全部
先理解各个结构的本质,然后对其各种操作才会比较容易掌握,从内向外的来学习。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
接触多了就慢慢懂了,凡是遇到新的事物,一定要有一个循序渐进的过程。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
结构分逻辑结构和存储结构
结构总体上说,分链式和连续两类结构。(存储结构)
逻辑结构分表、树、图
算法都是根结构来的,要对每一个算法都记住并不难。
首先要分析算法是针对那个结构的。
举例说明吧。快速排序算法是基于连续存储表(物理存储是连续,逻辑结构是表)
人们说要是链式存储不行吗?链表是靠一个指针连接的,所以要和两端比较时就要从头到尾的移动一边指针,才能找到最后一个,这样还怎么快啊,我看还不如冒泡来的快。因为快速排序使用下标查早位置的时间复杂度是1,所有的费时都在比较和交换。
快速排序的思路很简单好记,
1、拿出待排序待第一个元素
2、把它放到一个合适的位置,使得它左边的都小于它,右边都大于它。
3、把它左右两边分别进行快速排序。直到所有元素都到了合适的位置。
找合适位置的比较方法
1、要想比较的数据的范围,比如第一次是要取第一个元素作为要排序元素,它的比较范围是从第二个到最后一个。范围都在比较元素的右边,所以从最后一个向前比较,如果比元素大,那么它放在右边是合适的,不动。找到一个比排序元素小的,就和排序元素交换。
交换后,
2、比较范围在第二个到排序元素前一个这样一个空间,都在排序元素的左边,所以比较从最左边开始,小的不动大的交换,
再次交换后又回到第一步
你把算法分析到这样,放下书,就算忘了又如何。自己写出来,就ok
写完和书上的比较一下,看看自己什么地方考虑不周。
之后,你就可以说,我很会了。
结构总体上说,分链式和连续两类结构。(存储结构)
逻辑结构分表、树、图
算法都是根结构来的,要对每一个算法都记住并不难。
首先要分析算法是针对那个结构的。
举例说明吧。快速排序算法是基于连续存储表(物理存储是连续,逻辑结构是表)
人们说要是链式存储不行吗?链表是靠一个指针连接的,所以要和两端比较时就要从头到尾的移动一边指针,才能找到最后一个,这样还怎么快啊,我看还不如冒泡来的快。因为快速排序使用下标查早位置的时间复杂度是1,所有的费时都在比较和交换。
快速排序的思路很简单好记,
1、拿出待排序待第一个元素
2、把它放到一个合适的位置,使得它左边的都小于它,右边都大于它。
3、把它左右两边分别进行快速排序。直到所有元素都到了合适的位置。
找合适位置的比较方法
1、要想比较的数据的范围,比如第一次是要取第一个元素作为要排序元素,它的比较范围是从第二个到最后一个。范围都在比较元素的右边,所以从最后一个向前比较,如果比元素大,那么它放在右边是合适的,不动。找到一个比排序元素小的,就和排序元素交换。
交换后,
2、比较范围在第二个到排序元素前一个这样一个空间,都在排序元素的左边,所以比较从最左边开始,小的不动大的交换,
再次交换后又回到第一步
你把算法分析到这样,放下书,就算忘了又如何。自己写出来,就ok
写完和书上的比较一下,看看自己什么地方考虑不周。
之后,你就可以说,我很会了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询