排序算法2:冒泡排序
链接1:
邻居好说话:冒泡排序 【啊哈!算法】
冒泡排序的核心部分是一个双重嵌套循环。时间复杂度为:O(N2)O(N2)O(N^2)。NN<script type="math/tex" id="MathJax-Element-2">N</script> 为待排序的元素个数。
以下是自己的代码:
//#include <stdio.h>
#include <iostream>using namespace std;//输出数组中的内容
void Print(int *p,int num)
{for (int i=0;i<num;i++){cout<<p[i]<<" ";}cout<<endl;
}//冒泡排序核心部分
void BubbleSort(int *p,int num)
{int i,j,temp;for(i=0;i<num;i++){for(j=0;j<num-i;j++){if(p[j]<p[j+1]){temp=p[j];p[j]=p[j+1];p[j+1]=temp;}}}
}//主函数
int main()
{int Score[]={5,3,5,2,8};cout<<"排序前:"<<endl;int num=sizeof(Score)/sizeof(int);Print(Score,num);BubbleSort(Score,num);cout<<"排序后:"<<endl;Print(Score,num);getchar();getchar(); //这里的getchar();用来暂停程序,以便查看程序输出的内容//也可以用system("pause");等来代替return 0;}
程序运行结果为:
排序前:
5 3 5 2 8
排序后:
8 5 5 3 2
代码2:
//#include <stdio.h>
#include <iostream>using namespace std;struct Student_t
{char name[21];int stu_score;
};//输出数组中的内容
void Print(Student_t *p,int num)
{for (int i=0;i<num;i++){cout<<p[i].name<<":"<<p[i].stu_score<<endl;}cout<<"************"<<endl;
}//冒泡排序
void BubbleSort(Student_t *p,int num)
{int i,j;Student_t temp;for(i=0;i<num;i++){for(j=0;j<num-i;j++){if(p[j].stu_score<p[j+1].stu_score){temp=p[j];p[j]=p[j+1];p[j+1]=temp;}}}
}//主函数
int main()
{//结构数组Student_t Mystu[5]={{"name1",5},{"name2",3},{"name3",5},{"name4",2},{"name5",8}};cout<<"排序前:"<<endl;int num=sizeof(Mystu)/sizeof(Student_t);Print(Mystu,num);BubbleSort(Mystu,num);cout<<"排序后:"<<endl;Print(Mystu,num);getchar();getchar(); //这里的getchar();用来暂停程序,以便查看程序输出的内容//也可以用system("pause");等来代替return 0;}
代码运行结果为:
排序前:
name1:5
name2:3
name3:5
name4:2
name5:8
************
排序后:
name5:8
name1:5
name3:5
name2:3
name4:2
************
请按任意键继续. . .
************
排序算法2:冒泡排序相关推荐
- 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.比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换 ...
- 【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析
[排序算法]冒泡排序.简单选择排序.直接插入排序比较和分析 写在前面: 本文简单介绍了冒泡排序.简单选择排序.直接插入排序,并对这三种排序进行比较,入参都是80000个随机数,比较算法耗时.进一步,我 ...
- 排序算法(1)冒泡排序
排序算法(1)冒泡排序 原理: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 3. ...
- php编写冒泡排序算法_PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
本文实例讲述了PHP排序算法之冒泡排序(Bubble Sort)实现方法.分享给大家供大家参考,具体如下: 基本思想: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换 ...
- 冒泡和快速排序的时间复杂度_常用排序算法之冒泡排序
周末无事,带娃之余看到娃娃在算数,想到了排序-尝试着把几种常用的排序算法跟大家聊一聊,在分析的后面我会用GoLang.PHP和JS三种语言来实现下. 常见的基于选择的排序算法有冒泡排序.插入排序.选择 ...
- 排序算法之冒泡排序(Java版)
排序:即使集合或数组中的元素有序化 本篇介绍最简单.最易掌握的冒泡排序 冒泡排序: 是一种简单的排序算法, 冒泡排序就像学生站队一样,要在老师的引导下,以某位同学位基准,其他学生按身高 ...
最新文章
- SDN/NFV步入规模部署期 运营商拓智能化成大势所趋
- Windows内核情景分析 笔记
- ios nil、NULL和NSNull 的使用
- C#函数式编程之标准高阶函数
- 【car】什么是购车落地价?买车是先谈裸车价还是其他方面?
- java web转码_web/java实现多种格式视频上传、转码、截图、播放、下载等功能附源码(详细)...
- 1到30图片大全顺序_终于解决了!自媒体作者,如何给 Word 中的图片批量编号?...
- Android 基础—— 对Context的理解与使用技巧
- android层级关系图,画出 View 的层级 3D 图和树形图来分析层级关系
- ffmpeg mp4 html5,FFMPEG mkv to mp4 conversion lacks audio in HTML5 player
- 断网问题解决【值得一记】
- 表单验证神器——jquery.validate插件
- 金蝶k3 使用两台服务器的优势,金蝶k3报价系统优势如何,电商企业应用尤为明显...
- 服务器系统还原后如何退回去,如何进行系统还原
- android+excel软件,Android版Office办公软件Excel应用
- 计算机审计方法模板,计算机审计上机实验报告模板.doc
- 推荐系统用户反馈延迟新解法!阿里提出CVR无偏估计算法
- sqlserver中如何提取datetime格式数据中的日期或时间?
- 嵌入式之uboot源码分析-启动第二阶段学习笔记(下篇)
- mysql输出max函数_MySQL中的max()函数使用教程
热门文章
- 关于Linux系统启动过程,你应该了解这些
- php 显示外链图片,php绘图之加载外部图片的方法
- 批量数据插入(Java读取Excel文件并使用mybatis写入MySQL数据库)(含免费源码下载)
- 表格列隐藏_WPS表格(Excel)基础编辑
- Mybatis批量insert报错的解决办法【the right syntax to use near '' at line...】
- 存储过程别忘了写最后一句话,别忘了类型转换
- python_四元数/旋转矩阵/欧拉角之间的相互变换(简单易用版)
- karto探秘之open_karto 第二章 --- 参数解析
- C语言中基础数据类型的取值范围——整型溢出问题
- 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList