⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bubblesort.java

📁 Java_JDK_实例宝典书中的源码
💻 JAVA
字号:
package book.oo.sort.impl;

import book.oo.sort.ISortNumber;
/**
 * 采用冒泡法对整型数组排序
 */
public class BubbleSort implements ISortNumber {

	public BubbleSort() {
	}

	/**
	 * 冒泡排序法
	 */
	public int[] sortASC(int[] intArray) {
		if (intArray == null){
			return null;
		}
		//因为Java的参数传递是采用引用传值方式,因为在排序的过程中,需要对改变数组,
		//所以,为了保证输入参数的值不变,这里采用了数组的clone方法,直接克隆一个数组。
		int[] srcDatas = (int[]) intArray.clone();
		boolean changedPosition = true;
		int comparedTimes = 0;
		int maxComparedTimes = srcDatas.length - 1;

		while ((comparedTimes < maxComparedTimes) && (changedPosition)) {
			for (int i = 0; i < (maxComparedTimes - comparedTimes); i++) {
				changedPosition = false;
				if (srcDatas[i] > srcDatas[i + 1]) {
					swap(srcDatas, i, i + 1);
					changedPosition = true;
				}
			}
			comparedTimes++;
		}

		return srcDatas;
	}

	/**
	 * 交换数组中下标为src和dest的值
	 * @param data	数组
	 * @param src	源下标
	 * @param dest  目标下标
	 */
	private void swap(int[] data, int src, int dest) {
		int temp = data[src];
		data[src] = data[dest];
		data[dest] = temp;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -