2019独角兽企业重金招聘Python工程师标准>>>

时间复杂度O(n^2)

基本思想:

对待排序的序列进行依次比较相邻的两个对象,并且把大的对象放在后面,小的对象放在前面。每一轮排序结果都会使待排序的序列中最大值有序;算法直到序列有序后结束。整个排序的过程可以使用二次循环实现。

实现代码:

template < class  T >  void  BubbleSort(T  * aList, size_t size) {    unsigned  int  i, j;   T temp;   for (i  =   0 ; i  <  size;  ++ i)      {    for (j  =   0 ; j  <  size  -  i  -   1 ;  ++ j)      {    if (aList[j]  >  aList[j + 1 ])    {    temp  =  aList[j + 1 ];    aList[j + 1 ]  =  aList[j];        aList[j]  =  temp;    }  }    }
}

此算法是最基本的冒泡排序,未加任何优化

以下版本添加了优化条件判断,效率会高一点

template < class  T >
void  BubbleSort(T  * aList, size_t size)
{      unsigned  int  i, j;      T temp;      bool  isSorted;    for (i  =   0 ; i  <  size;  ++ i)      {      isSorted  =   true ;    for (j  =   0 ; j  <  size  -  i  -   1 ;  ++ j)  {    if (aList[j]  >  aList[j + 1 ])    {  isSorted  =   false ;    temp  =  aList[j + 1 ];    aList[j + 1 ]  =  aList[j];  aList[j]  =  temp;    }  }  if (isSorted)    {  break ;  }  }
}

转载于:https://my.oschina.net/ijaychen/blog/129958

【一天一算法】冒泡排序相关推荐

  1. 冒泡排序出现的问题_停课不停学 | 有趣的算法——冒泡排序

    停课不停学 有趣的算法--冒泡排序 01 生活中处处都有算法 每个人每天都会用到一些算法,算法也是人类使用计算机解决问题的技巧之一,但是算法并不是仅仅用于计算机领域中,包括在数学.物理甚至是每天的生活 ...

  2. C语言基础排序算法-冒泡排序

    C语言基础排序算法-冒泡排序 什么是冒泡排序? 顾名思义,这种排序方法就像水中的气泡一样,从底逐渐往上冒,一次前进一步.我们来看一个例子,看看到底是怎么冒泡的.假设有一个数组3,2,5,4,1,我们希 ...

  3. 经典排序算法 - 冒泡排序Bubble sort

    经典排序算法 - 冒泡排序Bubble sort 其原理是比较接近的数字22,按照从小到交换大或降序排列, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头開始进行两两比較交换,直到倒 ...

  4. JS数据结构与算法——冒泡排序(把大的数字依次往后放)

    一.图解排序过程 注意:比较次数和交换次数之所以不一致,是因为:比较了并不一定就需要交换两个数字的位置,比如比较 1 和 2两个数字,由于 后者本身就比前者大,所以不需要交换两者的位置. 二.代码实现 ...

  5. 排序算法-冒泡排序算法

    2019独角兽企业重金招聘Python工程师标准>>> 冒泡排序算法是所有排序算法中最简单.最基础的一种.冒泡排序算法的思路就是交换排序,通过相邻数据的交换来达到排序的目的. 冒泡排 ...

  6. 排序算法——冒泡排序(Bubble Sort)

    排序算法--冒泡排序(Bubble Sort) 算法简介(Introduction) Bubble sort is to compare adjacent elements of the list a ...

  7. C语言/Python经典算法冒泡排序

    C语言经典算法冒泡排序 #include "stdio.h" int main(){int a[10]={1,3,2,5,9,7,6,8,4,0};for (int i = 0; ...

  8. python排序算法 ——冒泡排序(附代码)

    python排序算法 --冒泡排序 文章目录 python排序算法 --冒泡排序 一.前言 二.算法描述 三.代码实现 总结 一.前言 相关知识来自<python算法设计与分析>.初级排序 ...

  9. 总结c语言基础算法——冒泡排序法和选择排序法

    1.首先无论何种排序方法其最终目的是按要求将所给数据进行排序.而在C语言中可以有很多排序的方法,这里着重介绍的是常用的较为基础和重要的算法--冒泡排序法和选择排序法. 下面将举一个例子进行讲解: 要求 ...

  10. Golang(二十一)[排序算法-冒泡排序]

    Golang-排序算法-冒泡排序 1.简介 2.原理 3.操作规则 4.Golang代码 1.升序 2.降序 3.测试 4.完整代码 5.优化 1.原冒泡排序 2.优化后 1.简介 冒泡排序(Bubb ...

最新文章

  1. 真相!30K拿到互联网大厂offer,网友:我服了!
  2. Enhancement spot 增强点简介
  3. 日常生活小技巧 -- 网络调试助手
  4. vc实现透明位图,透明背景
  5. html文字跳转备注,界面跳转备注.html
  6. OpenGL屏幕空间环境光遮挡
  7. 微软向Linux表白: 向Linux社区开放60000多项专利
  8. Go基础学习记录 - 编写Web应用程 - 完善Blog Model
  9. linux系统编程 -- 僵尸进程 孤儿进程
  10. Mac上自动隐藏或显示菜单栏
  11. msdn系统镜像下载
  12. Linux共享文件夹
  13. IOS免签网站封装工具PJ版
  14. AMADA阿玛达触摸屏维修折弯机主机维修
  15. 学习单片机系列(一)单片机选型
  16. zotero抓取知网文献
  17. Android神器Xposed框架
  18. CSDN独家全网首发专栏 | 《目标检测YOLO改进指南》改进涨点推荐!
  19. python解析钩针图解到markdown文件/requests/BeautifulSoup
  20. python idle怎么保存_Word文档如何设置自动保存

热门文章

  1. Spark 0.9.1 MLLib 机器学习库简介
  2. 词向量(从one-hot到word2vec)
  3. 【 Codeforces Round #547 (Div. 3) F2】Same Sum Blocks (Hard)【思维贪心】
  4. servlet后端连接 微信小程序与_微信小程序授权登录
  5. CrowdSec:行为检测引擎
  6. 安全管理:为软件供应链部署零信任方法
  7. HashMap源码分析(保姆式注解):三大方法(构造、Put、Remove) ;附带面试考点及博主免费答疑
  8. Lucene PriorityQueue JDK PriorityQueue
  9. SQL Server 备份和还原
  10. gis数据与cad数据转换之间的关系