思想:相邻元素两两排序,大值排后,直至第一轮结束
排序前
Paste_Image.png
第一次交换
Paste_Image.png
第一轮最后
Paste_Image.png
第二轮重复
Java实现其思想
package sortingAlgo;
import java.util.Arrays;
import java.util.Random;
/**
* @author 水皮蛋
* 相邻元素两两排序,大值排后,直至第一轮结束
*
*/
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)));
}
/**
* 简单交换
* @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类产生随机数组的对象
*
* @return 随机数组
*/
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;
}
}
网友评论