JAVA冒泡排序
1.判断v和w谁大的greater方法
private static boolean greater(Comparable v, Comparable w) {
return v.compareTo(w) > 0;
}
2.对数组元素进行交换
private static void exch(Comparable[] a, int i, int j) {
Comparable temp;
temp = a[i];
a[i] = a[j];
a[j] = temp;
3.实现数组的遍历排序
public static void sort(Comparable[] a) {
/*i--是步长*/
for (int i = a.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
//比较索引j和索引j+1处的值
if (greater(a[j], a[j + 1])) {
exch(a, j, j + 1);
}
}
}
}
整体代码
package BubbleSort;
/*冒泡排序API*/
public class Bubble {
/*第三步实现遍历数组*/
public static void sort(Comparable[] a) {
/*i--是步长*/
for (int i = a.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
//比较索引j和索引j+1处的值
if (greater(a[j], a[j + 1])) {
exch(a, j, j + 1);
}
}
}
}
/*第一步判断v是否大于w*/
private static boolean greater(Comparable v, Comparable w) {
return v.compareTo(w) > 0;
}
/*第二步进行交换*/
private static void exch(Comparable[] a, int i, int j) {
Comparable temp;
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
定义一个测试类
package BubbleSort;
import java.util.ArrayList;
import java.util.Arrays;
public class BubbleTest {
public static void main(String[] args) {
Integer[] arr = {4, 5, 6, 3, 2, 1};
Bubble.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
输出结果:
[1, 2, 3, 4, 5, 6]