首页 > 其他 > 详细

数据结构第八章学习心得

时间:2020-07-12 17:17:45      阅读:72      评论:0      收藏:0      [点我收藏+]

本章学习了排序

排序分为内部排序和外部排序

外部排序是指内存无法记录所有待排序的数据,需要对外存进行访问的排序。

1.冒泡排序与快速排序都以交换为基本操作,经过重复的交换实现排序

冒泡排序:重复走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误就把他们交换过来,重复n-1次,时间复杂度为O(n^2)

快速排序:不断重复分成一半,其中一部分记录的关键字均比另一部分的关键字小,多次重复后可以实现排序,时间复杂度最好情况O(log(2)(n))最坏情况:O(n)

2.插入排序

直接插入排序:简单,略,时间复杂度:O(1)

折半插入排序:在插入到已排序的数据时采用二分查找的方法,进一步简化直接插入,时间复杂度:O(1)

希尔排序:分组使用直接排序,时间复杂度:O(1)

3.选择排序

简单选择排序:选择数据中最大(小)的元素,把他放在第相应的位置,直到最小(大)的元素被放置完成。时间复杂度:O(1)

树形选择排序:原理与简单选择相近,但是利用了二叉树的存储特点,用二叉树的功能实现。

4.堆排序:是一种树形选择排序,采用二叉树的特点,一般用双亲节点大于左子树小于右子树作为前提条件。注意在实践运用时,需要根据题目要求调整是选择最大的元素还是最小的元素,然后再入堆然后出堆。时间复杂度O(1)

5.2-路归并排序:将数据不停二分,分到一定规模时开始组内排序,最后将排序归并在一起。时间复杂度o(n) 此用法大多用于内存无法记录所有待排序的数据,也就是和外部排序相关(内部排序也可以用,但是没必要)

心得:学会了希尔排序和折半插入排序,这章给我的感觉是需要理解思考,理解这些排序的作用,到真正需要使用的时候,反而会不停烦恼到底用哪个比较好,需要多做点编程题进行实践。

想法:这章学的比较虚,知识点好像飘在空中,可能也是考试周太接近的原因,我可能需要在复习的时候好好关注一下七八章的内容。

数据结构第八章学习心得

原文:https://www.cnblogs.com/pjc1435211553/p/13288746.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!