java 冒泡排序算法_java常见数据算法_冒泡排序

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

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

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

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

1、准备我们的数组

2、准备数组的常用操作方法

3、编写冒泡排序算法

4、测试冒泡排序算法的正确性;

package com.zcp.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

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

否则就数组越界了

*/

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.zcp.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();

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值