Java排序算法之冒泡排序

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package  com.xingej.algorithm.sort.bubble;
 
/**
  * 自定义数组类
 
  * 特点是:带有冒泡排序功能
 
  * 冒泡排序核心:1、从数组的最后一个元素,开始比较;2、两两比较,满足条件的话,就需要进行位置的互换
 
  * 实际生活中:小学时,需要根据身高进行座位排序,就可以使用冒泡排序进行。
 
  * @author erjun 2017年12月11日 上午9:20:28
  */
public  class  MyArrayWithBubbleSort {
     // 声明一个数组
     private  int [] arr;
 
     // 数组,最多能存储多少个元素
     private  int  maxSize;
 
     // 当前数组里,有多少个元素;有点类似于指针,索引的意思
     private  int  elements;
 
     public  MyArrayWithBubbleSort( int  maxSize) {
         this .maxSize = maxSize;
         arr =  new  int [maxSize];
         // 初始化状态,数组里的默认元素个数为0
         this .elements =  0 ;
     }
 
     public  void  insert( int  value) {
         arr[elements++] = value;
     }
 
     public  void  show() {
 
         for  ( int  i =  0 ; i < elements; i++) {
             System.out.print(arr[i] +  " " );
         }
 
         System.out.println();
     }
 
     public  void  bubbleSort() {
         // 4 3 2 1,按冒泡排序的话,需要进行3轮比较可以了
         for  ( int  i =  0 ; i < elements -  1 ; i++) {
             // 每一轮比较,找出本轮的最小值
             for  ( int  j = elements -  1 ; j > i; j--) {
 
                 // 后面的/下面的水泡 小于 上面的水泡,就移位
                 if  (arr[j] < arr[j -  1 ]) {
                     swap(j, j -  1 );
                 }
             }
         }
     }
 
     // 左右值交换
     private  void  swap( int  i,  int  j) {
         // java 是引用传递
         int  temp = arr[i];
         arr[i] = arr[j];
         arr[j] = temp;
     }
 
}


单元测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package  com.xingej.algorithm.sort.bubble;
 
import  org.junit.Test;
 
public  class  MyArrayWithBubbleSortTest {
 
     @Test
     public  void  test() {
         MyArrayWithBubbleSort bubbleSort =  new  MyArrayWithBubbleSort( 6 );
 
         bubbleSort.insert( 2 );
         bubbleSort.insert( 3 );
         bubbleSort.insert( 1 );
         bubbleSort.insert( 7 );
 
         System.out.println( "------排序前----打印输出------" );
         bubbleSort.show();
 
         bubbleSort.bubbleSort();
 
         System.out.println( "------排序后----打印输出------" );
         bubbleSort.show();
 
     }
 
}


代码已托管到

https://github.com/xej520/xingej-algorithm













本文转自故新51CTO博客,原文链接: http://blog.51cto.com/xingej/2049607,如需转载请自行联系原作者



相关文章
|
1月前
|
Java C语言
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
28 0
|
23天前
|
存储 算法 Java
Java数据结构与算法-java数据结构与算法(二)
Java数据结构与算法-java数据结构与算法
66 1
|
10天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出&quot;验证成功&quot;,否则输出&quot;验证失败&quot;。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。
|
12天前
|
Java 索引
Java练习题-用冒泡排序法实现数组排序
Java练习题-用冒泡排序法实现数组排序
14 2
|
17天前
|
搜索推荐 Java
Java排序算法
Java排序算法
18 0
|
17天前
|
搜索推荐 Java
Java基础(快速排序算法)
Java基础(快速排序算法)
22 4
|
20天前
|
存储 算法 JavaScript
Java入门高频考查算法逻辑基础知识3-编程篇(超详细18题1.8万字参考编程实现)
解决这类问题时,建议采取下面的步骤: 理解数学原理:确保你懂得基本的数学公式和法则,这对于制定解决方案至关重要。 优化算法:了解时间复杂度和空间复杂度,并寻找优化的机会。特别注意避免不必要的重复计算。 代码实践:多编写实践代码,并确保你的代码是高效、清晰且稳健的。 错误检查和测试:要为你的代码编写测试案例,测试标准的、边缘情况以及异常输入。 进行复杂问题简化:面对复杂的问题时,先尝试简化问题,然后逐步分析和解决。 沟通和解释:在编写代码的时候清晰地沟通你的思路,不仅要写出正确的代码,还要能向面试官解释你的
32 0
|
23天前
|
XML 存储 算法
Java数据结构与算法-java数据结构与算法(五)
Java数据结构与算法-java数据结构与算法
47 0
|
1月前
|
算法 搜索推荐 Java
利用java编写的项目设备调配系统代码示例(内含5种设备调配的算法)
利用java编写的项目设备调配系统代码示例(内含5种设备调配的算法)
13 1
|
1月前
|
并行计算 算法 搜索推荐