用java写个冒泡算法_用 Java 实现一个冒泡排序算法

冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第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 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值