第三章 列表
接口与实现
无序列表
有序列表
选择排序
从数据元素中选出最小(最大)的元素,存放在序列的起始位置(末尾位置),然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾(前面)。以此类推,直到全部待排序的数据元素的个数为零。
总体复杂度为θ(n^2),移动操作远远少于起泡排序,主要是比较操作。
插入排序
对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
最好情况O(n),完全(或几乎)有序,每次只需要比较一次然后插入。
最差情况O(n^2),完全(或几乎)无序,每次都需要比较很多次才能插入。
平均情况O(n^2)