java结构与算法之冒泡排序
一、什么是冒泡排序:冒泡排序是在从相邻两个数之间进行比较,这里将前面一个值定义为before,后面一个值定义为after;当before>after时i,交换他们的值,如果before<after,则不交换。
冒泡排序的时间复杂度,用大O法表示:O(N^2),运算效率低,但是算法思想简单,是比较基础的排序方法
冒泡排序思路图:
冒泡排序参考代码:
public class PopSort {
int[] array = null;
@Test
public void testPopSort() {
array = new int[5];
array[0] = 45;
array[1] = 22;
array[2] = 33;
array[3] = 43;
array[4] = 34;
int nElmes = array.length;
for (int i = nElmes - 1; i > 1; i--) {
for (int j = 0; j < i; j++) {
if (array[j] > array[j + 1]) {
swap(j, j + 1);
}
}
}
System.out.println(Arrays.toString(array));
}
private void swap(int one, int two) {
Integer temp = array[one];
array[one] = array[two];
array[two] = temp;
}
}