描述n个数据的冒泡排序算法,时间复杂度是多少-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

描述n个数据的冒泡排序算法,时间复杂度是多少

知与谁同 2018-07-21 18:53:06 1900
(可使用类pascal或类c语言编写
搜索推荐 C语言
分享到
取消 提交回答
全部回答(3)
  • 玄学酱
    2019-07-17 22:49:41
    冒泡排序的算法时间复杂度上O(n^2 )

    冒泡排序是这样实现的:

    首先将所有待排序的数字放入工作列表中。

    从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换。

    重复2号步骤,直至再也不能交换。

    冒泡排序的平均时间复杂度与插入排序相同,也是平方级的,但也是非常容易实现的算法。
    0 0
  • 一键天涯
    2019-07-17 22:49:41
    1.稳定性比较

    插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的

    选择排序、希尔排序、快速排序、堆排序是不稳定的

    2.时间复杂性比较

    插入排序、冒泡排序、选择排序的时间复杂性为O(n2)

    其它非线形排序的时间复杂性为O(nlog2n)

    线形排序的时间复杂性为O(n);

    3.辅助空间的比较

    线形排序、二路归并排序的辅助空间为O(n),其它排序的辅助空间为O(1);

    4.其它比较

    插入、冒泡排序的速度较慢,但参加排序的序列局部或整体有序时,这种排序能达到较快的速度。

    反而在这种情况下,快速排序反而慢了。

    当n较小时,对稳定性不作要求时宜用选择排序,对稳定性有要求时宜用插入或冒泡排序。

    若待排序的记录的关键字在一个明显有限范围内时,且空间允许是用桶排序。

    当n较大时,关键字元素比较随机,对稳定性没要求宜用快速排序。

    当n较大时,关键字元素可能出现本身是有序的,对稳定性有要求时,空间允许的情况下。

    宜用归并排序。

    当n较大时,关键字元素可能出现本身是有序的,对稳定性没有要求时宜用堆排序。
    0 0
  • 我是管理员
    2019-07-17 22:49:41
    冒泡排序的算法时间复杂度上O(n^2 )

    冒泡排序是这样实现的:

    首先将所有待排序的数字放入工作列表中。

    从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换。

    重复2号步骤,直至再也不能交换。

    冒泡排序的平均时间复杂度与插入排序相同,也是平方级的,但也是非常容易实现的算法。

    选择排序

    选择排序是这样实现的:

    设数组内存放了n个待排数字,数组下标从1开始,到n结束。

    i=1

    从数组的第i个元素开始到第n个元素,寻找最小的元素。

    将上一步找到的最小元素和第i位元素交换。

    如果i=n-1算法结束,否则回到第3步

    选择排序的平均时间复杂度也是O(n^2)的。
    0 0
添加回答
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

推荐文章
相似问题
推荐课程