冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
以下是创建一个整型数组,并随机生成数组中的数字,进行冒泡排序后输出.
public static void main(String[] args) {
int[] i = new int[10];
Random rand = new Random();
//随机生成1-100的值,并循环赋值到数组中
for (int i1 = 0; i1 < 10; i1++) {
int s = rand.nextInt(1, 101);
i[i1] = s;
}
//输出一下生成好的数组
System.out.println(Arrays.toString(i));
//进行冒泡排序
for (int k = 0; k < i.length - 1; k++) {
for (int l = 0; l < i.length - k - 1; l++) {
if (i[l] > i[l + 1]) {
int t = i[l];
i[l] = i[l + 1];
i[l + 1] = t;
}
}
}
//输出排序后的数组
System.out.println(Arrays.toString(i));
}
核心思想就是, 将数组中的值一一进行比较, 如果发现钱一个值大于后一个值, 即进行两个数字的交换(此代码中演示的为升序冒泡).
注意! Java中不支持直接交换,需要创建一个临时变量t来进行辅助交换.
当数组中的每个数组都相互进行过比较之后, 最小的数字会出现在最前面, 即为冒泡排序成功.
运行结果: