python哪种算法效率最高_冒泡排序算法的C++,Java和Python实现和冒泡排序算法三种语言效率的比较...

本文介绍了冒泡排序算法的原理,并提供了C++, Java和Python的实现。通过实例展示了不同语言实现冒泡排序的时间复杂度,比较了它们的效率,C++最快,Python其次,Java最慢。" 6586255,1070458,移植FATFS到PC:模拟硬件存储与文件操作,"['文件系统', '移植', 'fatfs', '存储模拟', 'PC开发']
摘要由CSDN通过智能技术生成

冒泡排序原理:

这一篇百度经验讲得很好,我不多说了

他讲的是C语言,没有关系,冒泡原理都是一样的

空间复杂度是O(1)

时间最优复杂度是O(n),时间最差复杂度是O(n^2);

时间最优复杂度推导

假如我们要对一个数组1,2,4,5进行升序排序,我们第一趟循环就完成了,即3次,理想的情况下只需排序一趟,以此类推,n个数只需n-1次即可排序完成。所以复杂度是O(n)

时间最差复杂度推导

假如我们对一个数组5,4,2,1进行升序排序,这个数组正好是全降序,所以要三趟循环,第一趟比较3次,交换3次,第二趟比较2次,交换2次,第三趟比较1次,交换1次。所以是3*2*1=6次

继续推广,n个数在最差情况下需要n(n-1)/2次比较和交换才能完成,所以时间复杂度为O(n^2)

C++实现

/**

* @author cjy

* @Date 2018/6/19 15:00.*/#include#include

using namespacestd;void print(int a[],intn)

{for (int k = 0; k < n; k++)

{

cout<< a[k] <

}

}intmain()

{

clock_t startTime, endTime;

startTime=clock();int a[8] = { 5,9,7,6,1,8,1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值