博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
冒泡排序以及冒泡排序的优化
阅读量:7136 次
发布时间:2019-06-28

本文共 851 字,大约阅读时间需要 2 分钟。

很早接触过冒泡排序法,但一直没有真正的理解,只是为了记住而学习,今天又重新看了一下,其实冒泡排序法第一次排序会把最大的冒到最上面,第二次会把次大的泡冒到最大的后面,一次类推····,另外在排序的次数上会逐渐减少。看代码:

void bubble_sort(int *a,int n){    for(int i=0;i
a[j]) swap(&a[j-1],&a[j]); }}

其实还可以优化一下,当发现没有进行交换证明已经排好了就跳出循环。

void bubble_sort2(int *a,int n){    bool flag = true;    int k = n;    while(flag)    {        flag = false;        for(int i=1;i
a[i]) { swap(&a[i-1],&a[i]); flag = true; } } k--; }}

测试代码:

#include 
using namespace std;void bubble_sort(int *a,int n);void bubble_sort2(int *a,int n);void swap(int *a,int *b){ int tmp; tmp = *a; *a = *b; *b = tmp;}int main(){ int a[10]={
5,3,2,7,4,9,6,8,24,13}; bubble_sort2(a,10); for(int i = 0;i<10;i++) { cout<
<

 

 

 

转载地址:http://fgdrl.baihongyu.com/

你可能感兴趣的文章
使用EditText+ListView并结合TextWatcher实现输入关键字筛选数据
查看>>
二进制、十进制、十六进制相互转换
查看>>
精通MVC网站、MVVM开发模式、Razor语法
查看>>
企业IT架构介绍
查看>>
Watchdog
查看>>
UVALive 6889 City Park 并查集
查看>>
CentOS6.8配置GO语言开发环境
查看>>
sed笔记
查看>>
一个简单的无限滚动的加载数据实现
查看>>
高铁在高速运行时的电力是如何提供的?
查看>>
fedora23的打印服务
查看>>
线程中消费者生产者的实例代码(使用Lock类)
查看>>
转-ubuntu清理卸载wine的残余项目
查看>>
Unity工程3D和2D开发模式切换
查看>>
关于天津中软国际ETC培训中心的见与闻
查看>>
linux设置开机服务自动启动/关闭自动启动命令
查看>>
IP地址网段规划
查看>>
单台服务器上安装Hadoop和Hive十五分钟教程
查看>>
LDA-线性判别分析(一)
查看>>
算法入门系列一--DP初步
查看>>