java算法 -- 冒泡排序
- 比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。
- 这样对数组的第 0 个数据到 N-1 个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。
- N=N-1,如果 N 不为 0 就重复前面二步,否则排序完成。
public class BubbleSortTest {
public static void main(String[] args) {
int[] array = {1, 2, 5, 41, 7, 11, 13, 17, 59, 19, 23, 29, 31, 37, 43, 47, 53};
int[] bubbleSortArrays = bubbleSort(array);
for (int s : bubbleSortArrays) {
System.out.print(s + " ");
}
}
/**
* 冒泡排序
* @param array
* @return
*/
private static int[] bubbleSort(int[] array) {
int i, j;
int n = array.length;
for (i = 0; i < n; i++) {//表示 n 次排序过程。
for (j = 1; j < n - i; j++) {
if (array[j - 1] > array[j]) {//前面的数字大于后面的数字就交换
//交换 array[j-1]和 array[j]
int temp;
temp = array[j - 1];
array[j - 1] = array[j];
array[j] = temp;
}
}
}
return array;
}
}