创建一个冒泡排序类,实例中处理的是int型数据,可以根据需要进行替换:
package SortAlgorithm;
/**
* Created by Promacanthus on 2017/6/12.
*/
public class BubbleSort {
int[] ints;
boolean exchange;
BubbleSort(int[] ints) {
this.ints = ints;
}
public void bubblesort(int[] ints) {
for (int i = ints.length - 1; i > 0; i--) {
exchange = false;
for (int j = 0; j < i; j++) {
if (ints[j] > ints[j + 1]) {
swap(ints, j, j + 1);
exchange = true;
}
}
if (!exchange){
return;
}
}
}
private void swap(int[] ints, int j, int i) {
int temp = ints[j];
ints[j] = ints[i];
ints[i] = temp;
}
public static void main(String[] args) {
int[] a = {4, 2, 1, 6, 3, 6, 0, -5, 1, 1};
BubbleSort bubbleSort = new BubbleSort(a);
bubbleSort.bubblesort(a);
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}
在代码中设置boolean类型变量进行标记,如果在某次排序中没有进行过交换,那么说明带排序数据已经有序了,冒泡排序过程可以终止了。