冒泡排序是比较容易理解的一种稳定排序方法,我们将记录关键字的顺序表elem[0……n-1]看作垂直排列,每个记录看作是重量为elem[i]的气泡。根据重气泡不能在轻的气泡上的原则,从上往下扫描,把重气泡下沉,轻气泡上浮。这样,我们便能得到一个有序的顺序表了,具体代码如下:

 1 template <typename ElemType>
 2 void bubbleSort(ElemType elem[],int len)
 3 {
 4     if(NULL == elem)
 5         return;
 6     int i,j,k;
 7     ElemType temp;
 8     for(i=len-1;i>0;i--)
 9     {
10           for(j=0;j<i;j++)
11           {
12                if(elem[j]>elem[j+1])
13               {
14                      temp = elem[j];
15                      elem[j]=elem[j+1];
16                      elem[j+1]=temp;
17               }
18           }
19     }
20 }                

下面是测试效果

 1 #include<windows.h>
 2 #include<iostream>
 3 using namespace std;
 4 int main()
 5 {
 6     int arr[10];
 7     srand(unsigned int(time_t(NULL)));//随机数种子
 8     for(int i=0;i<10;i++)
 9     {
10         arr[i]=rand()%10;//0-10内的整数
11                 cout<<arr[i]<<"  ";
12     }
13     cout<<endl;
14     long time_start = GetTickCount();
15     bubbleSort(arr,10);
16     long time_stop = GetTickCount();
17         for(int i=0;i<10;i++)
18     {
19                 cout<<arr[i]<<"  ";
20     }
21         cout<<endl;
22     cout<<"Time cost:"<<time_stop - time_start<<endl;
23     return 0;
24 }  

数据量小,时间忽略不计!

 

转载于:https://www.cnblogs.com/fclz/p/3367393.html

排序算法学习——冒泡排序相关推荐

  1. 冒泡和快速排序的时间复杂度_排序算法学习分享(二)交换排序---冒泡排序与快速排序...

    排序,也称为排序算法,可以说是我们学习算法的过程中遇到的第一个门槛,也是实际应用中使用得较为频繁的算法,我将自己对所学的排序算法进行一个归纳总结与分享,如有错误,欢迎指正! 排序算法学习分享(一)选择 ...

  2. datatable的数据进行组内排序_排序算法学习分享(四)希尔排序

    排序,也称为排序算法,可以说是我们学习算法的过程中遇到的第一个门槛,也是实际应用中使用得较为频繁的算法,我将自己对所学的排序算法进行一个归纳总结与分享,如有错误,欢迎指正! 排序算法学习分享(一)选择 ...

  3. 【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析

    [排序算法]冒泡排序.简单选择排序.直接插入排序比较和分析 写在前面: 本文简单介绍了冒泡排序.简单选择排序.直接插入排序,并对这三种排序进行比较,入参都是80000个随机数,比较算法耗时.进一步,我 ...

  4. php编写冒泡排序算法_PHP排序算法之冒泡排序(Bubble Sort)实现方法详解

    本文实例讲述了PHP排序算法之冒泡排序(Bubble Sort)实现方法.分享给大家供大家参考,具体如下: 基本思想: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换 ...

  5. Java排序算法:冒泡排序

    Java排序算法:冒泡排序 //创建数组并赋值int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};for(int i=0 ...

  6. 排序算法:冒泡排序、插入排序、选择排序、希尔排序

    相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 一.冒泡排序: 1.算法原理: 冒 ...

  7. golang 排序_常用排序算法之冒泡排序

    周末无事,带娃之余看到娃娃在算数,想到了排序-尝试着把几种常用的排序算法跟大家聊一聊,在分析的后面我会用GoLang.PHP和JS三种语言来实现下. 常见的基于选择的排序算法有冒泡排序.插入排序.选择 ...

  8. 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序

    冒泡排序.选择排序.插入排序.希尔排序.归并排序.快速排序.堆排序.计数排序.桶排序.基数排序的动图与源代码. 目录 关于时间复杂度 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 ...

  9. 数据结构与算法:十大排序算法之冒泡排序

    数据结构与算法:十大排序算法之冒泡排序 package array;import java.util.Arrays;//冒泡排序 //1.比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换 ...

最新文章

  1. 9path 导致的一场冤假错案
  2. JDK8漫谈——增强接口
  3. virtual box虚拟机分区后下一步看不见解决
  4. 十大PHP程序员必备工具
  5. 获取矩阵元素的方法 4种方法 B(1,2) B(9) B(sub2ind(size(B),3,4))
  6. 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题2---CMAKE配置问题
  7. Arcgis(AE)二次开发问题解决 创建组件”ToolbarControl”失败等
  8. 职业经理人十大修炼指南 [完全版]
  9. 案例|工业物联网解决方案•智慧水务云平台
  10. Java基础教程笔记
  11. 微信App iOS客户端不同阶段的发展策略
  12. 制作AppStore预览:在 iPhone 上截屏或录制屏幕15秒以上的视频;iPhone日常使用技巧(一直弹出登录iCloud的解决方法、不自动弹出询问是否允许使用蜂窝数据的解决方法)
  13. Squid在Windows平台搭建代理服务器
  14. 单片机8位共阴极数码管0~99自增
  15. 全球航天电机行业调研及趋势分析报告
  16. intel 新一代集成显卡
  17. 怎样批量修改文件名不要括号?
  18. 高等概率论 Chapter 5. Random Variables on a Countable Space
  19. 交互设计课程1.0课程介绍
  20. [渝粤教育] 广东-国家-开放大学 21秋期末考试建设工程法规10221k2

热门文章

  1. 《机器学习》 第 5 章 神经网络
  2. 人人都是 DBA(V)SQL Server 数据库文件
  3. MySQL数据库从windows迁移到linux
  4. Charles抓包https(测试app的双向认证)
  5. 电脑勒索病毒之谜:用户如何能确保电脑安全
  6. CString、std::string格式化字符串
  7. Android成长之路-实现简单动画
  8. PostgreSQL参数优化对比性能测试
  9. C#和Java的对比
  10. capistrano