排序算法学习——冒泡排序
冒泡排序是比较容易理解的一种稳定排序方法,我们将记录关键字的顺序表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
排序算法学习——冒泡排序相关推荐
- 冒泡和快速排序的时间复杂度_排序算法学习分享(二)交换排序---冒泡排序与快速排序...
排序,也称为排序算法,可以说是我们学习算法的过程中遇到的第一个门槛,也是实际应用中使用得较为频繁的算法,我将自己对所学的排序算法进行一个归纳总结与分享,如有错误,欢迎指正! 排序算法学习分享(一)选择 ...
- datatable的数据进行组内排序_排序算法学习分享(四)希尔排序
排序,也称为排序算法,可以说是我们学习算法的过程中遇到的第一个门槛,也是实际应用中使用得较为频繁的算法,我将自己对所学的排序算法进行一个归纳总结与分享,如有错误,欢迎指正! 排序算法学习分享(一)选择 ...
- 【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析
[排序算法]冒泡排序.简单选择排序.直接插入排序比较和分析 写在前面: 本文简单介绍了冒泡排序.简单选择排序.直接插入排序,并对这三种排序进行比较,入参都是80000个随机数,比较算法耗时.进一步,我 ...
- php编写冒泡排序算法_PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
本文实例讲述了PHP排序算法之冒泡排序(Bubble Sort)实现方法.分享给大家供大家参考,具体如下: 基本思想: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换 ...
- Java排序算法:冒泡排序
Java排序算法:冒泡排序 //创建数组并赋值int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};for(int i=0 ...
- 排序算法:冒泡排序、插入排序、选择排序、希尔排序
相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 一.冒泡排序: 1.算法原理: 冒 ...
- golang 排序_常用排序算法之冒泡排序
周末无事,带娃之余看到娃娃在算数,想到了排序-尝试着把几种常用的排序算法跟大家聊一聊,在分析的后面我会用GoLang.PHP和JS三种语言来实现下. 常见的基于选择的排序算法有冒泡排序.插入排序.选择 ...
- 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序
冒泡排序.选择排序.插入排序.希尔排序.归并排序.快速排序.堆排序.计数排序.桶排序.基数排序的动图与源代码. 目录 关于时间复杂度 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 ...
- 数据结构与算法:十大排序算法之冒泡排序
数据结构与算法:十大排序算法之冒泡排序 package array;import java.util.Arrays;//冒泡排序 //1.比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换 ...
最新文章
- 9path 导致的一场冤假错案
- JDK8漫谈——增强接口
- virtual box虚拟机分区后下一步看不见解决
- 十大PHP程序员必备工具
- 获取矩阵元素的方法 4种方法 B(1,2) B(9) B(sub2ind(size(B),3,4))
- 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题2---CMAKE配置问题
- Arcgis(AE)二次开发问题解决 创建组件”ToolbarControl”失败等
- 职业经理人十大修炼指南 [完全版]
- 案例|工业物联网解决方案•智慧水务云平台
- Java基础教程笔记
- 微信App iOS客户端不同阶段的发展策略
- 制作AppStore预览:在 iPhone 上截屏或录制屏幕15秒以上的视频;iPhone日常使用技巧(一直弹出登录iCloud的解决方法、不自动弹出询问是否允许使用蜂窝数据的解决方法)
- Squid在Windows平台搭建代理服务器
- 单片机8位共阴极数码管0~99自增
- 全球航天电机行业调研及趋势分析报告
- intel 新一代集成显卡
- 怎样批量修改文件名不要括号?
- 高等概率论 Chapter 5. Random Variables on a Countable Space
- 交互设计课程1.0课程介绍
- [渝粤教育] 广东-国家-开放大学 21秋期末考试建设工程法规10221k2