Java排序算法之冒泡排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java排序算法之冒泡排序相关的知识,希望对你有一定的参考价值。

package?com.xingej.algorithm.sort.bubble;

/**
?*?自定义数组类
?*?
?*?特点是:带有冒泡排序功能
?*?
?*?冒泡排序核心:1、从数组的最后一个元素,开始比较;2、两两比较,满足条件的话,就需要进行位置的互换
?*?
?*?实际生活中:小学时,需要根据身高进行座位排序,就可以使用冒泡排序进行。
?*?
?*[email protected]?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;
????}

}


单元测试:

package?com.xingej.algorithm.sort.bubble;

import?org.junit.Test;

public?class?MyArrayWithBubbleSortTest?{

[email protected]
????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





以上是关于Java排序算法之冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

排序算法之冒泡排序Java实现

Java排序算法之冒泡排序

java排序算法之 --- 冒泡排序

数据结构之排序算法Java实现—— 冒泡排序算法

Java之冒泡排序详解

Java排序算法之冒泡排序