20182327 2019-2020-1 《数据结构与面向对象程序设计》第八周学习总结
20182327 2019-2020-1 《数据结构与面向对象程序设计》第八周学习总结 教材学习内容总结 1、 查找算法的总结 - 线性查找,通过依次遍历所要查找元素的集合,比较是否存在所需查找的元素,直到找到该元素或返回false表明集合不存在该元素。实现较为简单,==但当集合元素数量巨大时,效率极慢==。 - - 二分法查找,通过每次将集合分为两部分,比较所需查找的元素位于中间元素的左半区还是右半区,依次进行二分,直至找到元素,或返回false。效率较高,例如,一个含义一百万元素的集合,只需20次左右即可完成查找。==但二分法的实现需要基于一个有序数组,否则无法实现。== 2、排序算法的总结 - 顺序排序——选择排序法,选择排序法每遍历列表依次,找到当前最小元素,将其与列表左侧元素交换,最终将所有元素进行排序。 - - 顺序排序——插入排序法,从最左侧元素开始,与其余元素比较,产生一个初步的排序子集,每当下一个比较的元素小于排序子集的最右元素时,经过与子集元素比较,将其插入到子集的顺序位置。子集不断向右与剩余元素进行比较,直至完成排序。 - - 顺序排序——冒泡排序,将列表中的元素,从左端开始,两个元素比较大小,若左大右小,两个交换位置,一直往复,将最大元素置于最右位置。每次排序都将当前最大的交换到最右 - 快速排序,使用递归的思想。以一个元素为界限,小在左,大在右