思想:相鄰元素兩兩排序,大值排后,直至第一輪結(jié)束
排序前
Paste_Image.png
第一次交換
Paste_Image.png
第一輪最后
Paste_Image.png
第二輪重復(fù)
Java實(shí)現(xiàn)其思想
package sortingAlgo;
import java.util.Arrays;
import java.util.Random;
/**
* @author 水皮蛋
* 相鄰元素兩兩排序,大值排后,直至第一輪結(jié)束
*
*/
public class BubbleSort {
public static void main(String[] args) {
int[] arr = createRandomArray();
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(bubbleSort(arr)));
}
/**
* 簡(jiǎn)單交換
* @param arr
* @return
*/
public static int[] bubbleSort(int[] arr) {
if (arr == null)
throw new NullPointerException();
int n = arr.length;
if (!(n > 1))
return null;
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - i - 1; ++j) {
if (arr[j] > arr[j + 1]) {
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
return arr;
}
/**
* 使用Random類產(chǎn)生隨機(jī)數(shù)組的對(duì)象
*
* @return 隨機(jī)數(shù)組
*/
public static int[] createRandomArray() {
Random random = new Random();
int[] array = new int[10];
for (int i = 0; i < 10; i++) {
array[i] = random.nextInt(100);
}
return array;
}
}