学弟问的一道数据结构的题,关于一些排序算法的时间复杂度。
针对近似有序序列,
①当使用直接插入排序时,其基本操作为数组中元素的移动。最好情况下,待排序列有序,无需移动,此时时间复杂度为O(n),
当为近似有序序列是,其基本操作执行的次数是K次当前循环的最大值的和,即时间复杂度为O(k.n)由于k远小于n,
综合考虑直接插入排序的时间复杂度为O(n)
②当使用冒泡排序时,默认为普通冒泡排序,其基本操作为元素间比较的次数,因此无论
是否是近似有序,时间复杂度均为O(n^2)
③当使用简单排序时,其基本操作也为元素间的比较,与待排序列状态无关,即第i次的
比较次数为n-i,时间复杂度为O(n^2)
综上,若当前序列为近似有序序列时,直接插入排序效率最高。
原文地址:https://www.cnblogs.com/jiangxue2019/p/11965513.html
时间: 2024-11-10 08:54:19