冒泡排序怎么实现?Java语言实现冒泡排序方法
小标 2018-07-13 来源 : 阅读 1097 评论 0

摘要:本文主要向大家介绍了冒泡排序怎么实现?Java语言实现冒泡排序方法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了冒泡排序怎么实现?Java语言实现冒泡排序方法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。 

 冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。

       由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。 冒泡排序最好的时间复杂度为 O(n),总的平均时间复杂度为 O(n^2),是一种稳定排序算法。

       在编程实现中,一般用二重循环实现,外循环变量设为 i,内循环变量设为 j。外循环重复 n 次,内循环依次重复 n-1, n-2, ……, 1 次。每次进行比较的两个元素都是与内循环 j 有关的,它们可以分别用 a[j] 和 a [j+1] 标识,i 的值依次为 1, 2, ……, n,对于每一个 i,j 的值依次为 1, 2, ……, n-i,例如下面的代码:

 

  1 for (int i = 0; i < arrys.length; i++) {  2     for(int j = 0;j < arrys.length-i-1; j++){  3          if(arrys[j] > arrys[j+1]){ //判断当前数字与后面数字的大小  4             //把大数放后边  5          }  6      }  7 }

 

 

以下是该题目的代码实现:

 

  1 package com.fhcq.bubblesort;  2   3 public class BubbleSort {  4   5   //主方法  6   public static void main(String[] args) {  7     int[] arr = { 3, 5, 7, 1, 8, 11, 9}; //定义数组   8     bubbleSort (arr); //开始排序  9   } 10  11   //排序方法 12   public static void bubbleSort(int[] arrys) { 13     //定义临时变量 temp 14     int temp = 0; 15     //用j为下标,遍历数组 16     for (int j = 0; j < arrys.length; j++) { 17       //对于每一个数组元素,从0到还未来排序的最大下标,总是把最大的数字放在后面 18       for(int k = 0;k < arrys.length-j-1; k++){ 19         if(arrys[k] > arrys[k+1]){ //判断当前数字与后面数字的大小 20           temp = arrys[k]; 21           arrys[k] = arrys[k+1]; 22           arrys[k+1] = temp; //用temp变量进行换值 23         } 24       } 25    } 26     bubblePrint(arrys); //打印 27   } 28   //打印方法 29   public static void bubblePrint(int[] before){ 30     for(int i = 0;i < before.length; i++){ //遍历 31       System.out.print(before[i] + ""); //打印,以空格隔开 32     } 33     System.out.println();//换行 34   } 35 }

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程