博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常见算法之0---冒泡排序
阅读量:4457 次
发布时间:2019-06-08

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

冒泡排序算法:轻者上浮,重者下沉。(或者正好相反) 

基本思想:

1.比较相邻的元素。

2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。

3.针对所有的元素重复以上的步骤,除了最后一个。

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

本质上是:第一趟,选出最大(或最小)元素,第二趟,选出次大(或次小的)的元素…..

示例:

定义数组:{ 4, 2, 62, 9, 22, 1,14,10 }

第1趟排序后:[2, 4, 9, 22, 1, 14, 10, 62]  //选取最大元素62,放在了最后

第2趟排序后:[2, 4, 9, 1, 14, 10, 22, 62]  //选出了次大元素22 ,放在了倒数第二位….

第3趟排序后:[2, 4, 1, 9, 10, 14, 22, 62]

第4趟排序后:[2, 1, 4, 9, 10, 14, 22, 62]

第5趟排序后:[1, 2, 4, 9, 10, 14, 22, 62]

第6趟排序后:[1, 2, 4, 9, 10, 14, 22, 62]

第7趟排序后:[1, 2, 4, 9, 10, 14, 22, 62]

代码:

int i,j,t;int [] a={4,2,6,9,22,1,100};for( i=0;i
a[j+1]){ //满足条件的话,交换两个元素。 t=a[j]; a[j]=a[j+1]; a[j+1]=t; } }}

时间复杂度:最好情况,O(n) ;最坏(逆序) O(n*n)。是稳定的排序。

 (稳定排序:待排序的记录序列中可能存在两个或两个以上关键字相等的记录。

排序前的序列中Ri领先于Rj(即i<j).若在排序后的序列中Ri仍然领先于Rj,则称所用的方法是稳定的。)

转载于:https://www.cnblogs.com/xiaoChongUp/p/3238788.html

你可能感兴趣的文章
ubuntu linux下火狐跨版本升级方法详解(也同样适合linux下安装火狐中国版)
查看>>
基于ajax 的 几个例子 session ,ajax 实现登录,验证码 ,实现ajax表单展示
查看>>
OSX: 10.9的SMB网络共享连接可能破坏其权限设置
查看>>
连接不上sql server服务器的解决方案
查看>>
记录安装oracle的那些事(二)之双系统安装
查看>>
c3po数据库连接池中取出连接
查看>>
bootstrap-table 分页
查看>>
使用本机IP调试web项目
查看>>
【Java面试题】58 char型变量中能不能存贮一个中文汉字?为什么?
查看>>
C++ Primer 第六章 函数
查看>>
交互设计算法基础(3) - Quick Sort
查看>>
Ubuntu各种软件的安装
查看>>
2019春第四次课程设计实验报告
查看>>
智能社的邀请码
查看>>
算法与分析 统计数字问题和整数因子分解问题?
查看>>
变量提升
查看>>
Thinkphp3.2多站点共用S方法缓存
查看>>
高精度(✚▬✖)法,↓↓↓
查看>>
谜题88:原生类型的处理
查看>>
boost::asio::detail::epoll_reactor::start_op的崩溃问题
查看>>