冒泡排序属于简单排序的一种,也是面试问的比较多的一种排序算法,下面给大家介绍一下冒泡算法用api实现
思路依次比较相邻的元素,数值较大的放在右边,保证每一轮比较都能都能将最大的元素找出并放在参与比较元素的最右侧
动图 api
public class BubbleSort {
public Comparable[] sort(Comparable[] a) {
for (int i = 1; i < a.length - 1; i++) {
for (int j = 1; j < a.length - 1; j++) {
if (greater(a[j], a[j + 1])) {
swap(a, j, j + 1);
}
}
}
return a;
}
public boolean greater(Comparable a, Comparable b) {
return a.compareTo(b) > 0;
}
public void swap(Comparable[] a, int i, int j) {
Comparable temp;
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
public static void main(String[] args) {
BubbleSort bubbleSort = new BubbleSort();
Integer[] a = {1, 3, 5, 7, 14, 2, 4, 21};
Comparable[] sort = bubbleSort.sort(a);
System.out.println(Arrays.toString(sort));
}
}
时间复杂度
按最坏情况来算,即每次比较都要交换元素,时间复杂度为O(N^2)
总结代码复制过去即可使用,大家可自行实验



