java冒泡排序算法怎么用
发表于:2024-10-23 作者:千家信息网编辑
千家信息网最后更新 2024年10月23日,这篇文章主要讲解了"java冒泡排序算法怎么用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"java冒泡排序算法怎么用"吧!冒泡排序是一种简单的排序算
千家信息网最后更新 2024年10月23日java冒泡排序算法怎么用
这篇文章主要讲解了"java冒泡排序算法怎么用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"java冒泡排序算法怎么用"吧!
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
1.1 算法描述
比较相邻的元素。如果第一个比第二个大,就交换它们两个;
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
针对所有的元素重复以上的步骤,除了最后一个;
重复步骤1~3,直到排序完成。
1/**
2 * @description: 冒泡排序
3 * 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。
4 * 如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复n 次,
5 * 就完成了 n 个数据的排序工作。
6 **/
7public class BubbleSort {
8 public void bubbleSort(Integer[] arr, int n) {
9 if (n <= 1) return; //如果只有一个元素就不用排序了
10
11 for (int i = 0; i < n; ++i) {
12 // 提前退出冒泡循环的标志位,即一次比较中没有交换任何元素,这个数组就已经是有序的了
13 boolean flag = false;
14 for (int j = 0; j < n - i - 1; ++j) { //此处你可能会疑问的j15 // 数组下标又是从0开始的,i下标后面已经排序的个数就得多减1,总结就是i增多少,j的循环位置减多少
16 if (arr[j] > arr[j + 1]) { //即这两个相邻的数是逆序的,交换
17 int temp = arr[j];
18 arr[j] = arr[j + 1];
19 arr[j + 1] = temp;
20 flag = true;
21 }
22 }
23 if (!flag) break;//没有数据交换,数组已经有序,退出排序
24 }
25 }
1.2 时间复杂度:
如果我们的数据正序,只需要走一趟即可完成排序。所需的比较次数C和记录移动次数M均达到最小值,
即:Cmin=n-1;Mmin=0;所以,冒泡排序最好的时间复杂度为O(n)。
如果很不幸我们的数据是反序的,则需要进行n-1趟排序。每趟排序要进行n-i次比较(1≤i≤n-1),且每次比较都必须移动记录三次来达到交换记录位置。在这种情况下,比较和移动次数均达到最大值:
即最坏情况下时间复杂度为O(n2)【n的平方】;
所以,冒泡排序总的平均时间复杂度为:O(n2) 。
感谢各位的阅读,以上就是"java冒泡排序算法怎么用"的内容了,经过本文的学习后,相信大家对java冒泡排序算法怎么用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
排序
元素
算法
两个
数据
复杂
复杂度
数列
时间
移动
位置
情况
数组
次数
学习
工作
循环
最大
有序
下标
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
有关数据库安全的题
python3 数据库
软件开发工程师招聘职位信息
web服务器安全入门
网络安全认证有问题怎么解决
台州网络安全执法案例
从事网络安全职业前景
discord游戏服务器
软件开发的交付说明书
网络安全口诀简短点的
开软件开发的公司经营范围
加强全社会网络安全意识教育培训
aspx 数据库配置
系统比较新 但软件开发
怎么删除服务器中的网站安全锁
网络安全实验室培训课程
硅湾工业互联网科技
数据库系统的安全指标
机房网络安全告知单
2018网络安全总结报告
淮南矿业集团软件开发
数据库表格怎么优化
服务器端口安全检测
百川通联北京网络技术
网络安全上网信息记录
软件开发公司部门组织构成
网络安全教育画手抄报
php连接数据库3种
法院网络安全课件
怎样学好数据库