您的位置:首页 > 编程语言 > Java开发

一看就懂的冒泡排序方法_java版

2013-02-28 17:14 232 查看
运行结果:



=================================================

代码部分:

=================================================

/java_test/src/com/b510/sort/BubbleSort.java

package com.b510.sort;

/**
* 冒泡法排序
* @author Administrator
*
*/
public class BubbleSort {

//升序和降序
private static final int DES = 0;
private static final int DESC = 1;

/**
* 交换一个数组中的两个值,即:array[i]和array[j]的值进行交换
* @param array 原数组
* @param i 数组下标i
* @param j 数组下标j
* @return 交换后的新数组
*/
public int[] swap(int[] array,int i,int j){
array[i] = array[i] + array[j];
array[j] = array[i] - array[j];
array[i] = array[i] - array[j];
return array;
}

/**
* 使用冒泡排序方法进行排序
* @param array 原数组
* @param des 升序为DES,降序为DESC
* @return 新数组
*/
public int[] bubbleSort(int[] array,int des){
for(int i = 0 ;i < array.length - 1; i++){
for(int j = array.length -1 ; j > i ; j --){
if(des == DES){
//降序排序
//第一轮:第一个和其他比较,如果有比第一个大的,就放在第一个的位置;
//第二轮:第二个和其他比较(除第一个),如果有比第二个大的,就放在第二个的位置;
//以此下去
if(array[j] < array[i]){
swap(array, i, j);
}
}else{
//升序排序
if(array[j] > array[i]){
swap(array, i, j);
}
}
}
}
return array;
}

/**
* 获取一个随机数组
* @param from 随机数最小值
* @param to 随机数最大值
* @param number 生成数量
* @return 随机数组
*/
public int[] getRandomArray(int from,int to,int number){
int[] array = new int[number];
for(int i =0;i < number ; i++){
array[i] = from + (int) (Math.random() * (to - from + 1));
System.out.println("array["+i+"] = " + array[i]);
}
return array;
}

/**
* 显示信息
* @param array
*/
public void showInfo(int[] array){
System.out.println("排序后的情况:");
for(int i = 0; i < array.length ; i++){
System.out.println("array["+i+"] = " + array[i]);
}
}

/**
* test
* @param args
*/
public static void main(String[] args) {
BubbleSort bubbleSort = new BubbleSort();
int[] result = bubbleSort.bubbleSort(bubbleSort.getRandomArray(10, 200, 5), DESC);
bubbleSort.showInfo(result);
}
}


看到这里,是不是很简单啊....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: