冒泡排序原理:
比较相邻的元素,如果前一个元素比后一个元素大,两者将元素交换
一轮比较下来,最后一个元素一定是最大的,接着就是寻找上下元素的最大值,直到剩余一个元素的时候,则排序完成
时间复杂度O()
代码示例如下
public static void bubble(Comparable[] b) {
for (int i = b.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (b[j].compareTo(b[j + 1]) > 0) {
Comparable temp;
temp = b[j];
b[j] = b[j + 1];
b[j + 1] = temp;
}
}
}
}
选择排序原理:
每一次遍历都会选出一个最小值并换在合适的位置,相较于冒泡排序区别于选择排序是选出最小值在换在合适的位置(交换的是第一个索引处和最小值所在索引处的值),而冒泡比较完立刻交换
时间复杂度O()
代码示例如下
public static void select(Comparable[] c) {
for (int i = 0; i < c.length - 2; i++) {
int min = i;
for (int j = i; j < c.length; j++) {
if (c[min].compareTo(c[j]) > 0) {
min = j;
}
}
Comparable temp;
temp = c[i];
c[i] = c[min];
c[min] = temp;
}
}