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

Posted Linux公社

tags:

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

常见的算法有非常多,今天我们就一起看看常见的算法之冒泡排序。

冒泡排序的主要核心思想就是:

比较相邻两个元素,如果前一个元素的值比后一个元素的值大,则进行交换,经过对每个元素的比较,最后将最大的元素设置成最后一个元素,循环重复该操作,最后形成从小到大排序。

            下面来看看我们的实例代码:

            1、准备我们的数组
            2、准备数组的常用操作方法
            3、编写冒泡排序算法
            4、测试冒泡排序算法的正确性;

            package com.linuxmi.ch02;

/**

•@author Administrator
•冒泡排序的实现
*/
public class BubbleArray {

//数组
private long[] arr = null;

//数组中有效数据的大小
private int elems;
public BubbleArray() {
arr = new long[50];
}

public BubbleArray(int length){
arr = new long[length];
}

/**

◦插入数据的操作
◦@param value
*/
public void insert(long value){
arr[elems] = value;
elems++;
}

/**
◦查找指定的数据,如果能够查找到则返回数组的坐标,否则返回-1.
◦@param value

◦@return
*/
public int find(long value){
int i = 0;
for(i=0;i<elems;i++){
if(value==arr[i])
break;
}

if(i >(elems-1)){
return -1;
}

return i;


}

/***
◦删除数据的操作,删除成功返回true,删除失败返回false

◦@param value
*/
public boolean delete(long value){

int key = find(value);
if(key == -1){
System.out.println("删除数据失败,未查找到要删除的数据");
return false;
}
for (int i = key; i < elems; i++) {
arr[i] = arr[i+1];
}
elems--;
return true;


}

/***

◦@param oldValue
◦@param newValue
◦@return 如果修改成功返回true,修改失败返回false
*/
public boolean changeValue(long oldValue,long newValue){
int key = find(oldValue);
if(key == -1){
System.out.println("需要修改的数据不存在,修改失败");
return false;
}
arr[key] = newValue;
return true;
}

/**
◦实现冒泡排序的算法
◦该方法中的i表示的是冒泡排序的比较次数
◦该方法中的j表示的是冒泡排序的两两的比较次数,至于j<elems-i-1,为什么要减1,主要是下面两两比较的时候需要j+1,

◦否则就数组越界了
*/
public void bubbleSort(){

for (int i = 0; i < elems-1; i++) {

for (int j = 0; j < elems-i-1; j++) {

    if(arr[j]>arr[j+1]){
        long tmp = arr[j];
        arr[j] = arr[j+1];
        arr[j+1] = tmp;
    }
}

}
}


/**
◦该方法主要是变量数组并显示
*/
public void disPlay(){
for (int i = 0; i < elems; i++) {
System.out.print(arr[i]+ " " );
}
System.out.println();
}


}

测试代码如下:
package com.linuxmi.ch02;

public class TestBubbleMain {

public static void main(String[] args) {

    BubbleArray bubbleArray = new BubbleArray();
    bubbleArray.insert(10);
    bubbleArray.insert(50);
    bubbleArray.insert(80);
    bubbleArray.insert(2);
    bubbleArray.insert(5);

    bubbleArray.disPlay();

    bubbleArray.bubbleSort();
    System.out.println("冒泡排序后的数据如下:");
    bubbleArray.disPlay();
}

}

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

排序算法之冒泡选择插入排序(Java)

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

排序算法冒泡选择排序的Python实现及算法优化详解

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

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

Java排序算法之冒泡排序