一.冒泡排序的定义:
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复访问要排序的数列,一次比较两个元素,如果他们的顺序不对就把他们交换过来。访问数列的工作是重复地进行直到没有再需要交换的数据,也就是说该数列已经排序完成。
算法描述:
- 第一趟从第一个元素array[0]开始,与下一个元素array[1]进行比较,如果array[1]小于array[0],则交换位置,然后比较array[1]和array[ 2],如果array[1]小于array[2],则交换位置,以此类推,直到比较完全部元素,就确定了最大元素
- 第二趟从第一个元素array[0]开始,与下一个元素array[1]进行比较,依次两组元素进行比较,直到比较完除了最后一个元素的全部元素,这样就确定了第二大元素
- 每一趟比较结束,就依次确定了最大元素,第二大元素,第三大元素…
图例:
int [] arrA={4,2,6,5,1};
/* i是控制轮数 i=0 不能和自己比较 因此 i <arrA.length -1
* 第一轮 arrA[0:1] arrA[1:2] arrA[2:3] arrA[3:4]
* 第二轮 arrA[0:1] arrA[1:2] arrA[2:3]
* 第三轮 arrA[0:1] arrA[1:2] j 是j+1进行比较的 因此j的初始值是0,j < arrA.length -1 -i
* 第四轮 arrA[0:1]
*/
实现代码(包括打印数组):
package java的8中基本排序方法;
public class Maopao{
public static void main(String[] args) {
int[] arrA = {10,7,2,4,5};
System.out.println("------------------------------------------------------------------------");
System.out.print("数组1:"+ "{");
for (int i = 0; i < arrA.length; i++) {
if (i == arrA.length -1) {
System.out.print(arrA[i] + "}");
} else {
System.out.print(arrA[i]+",");
}
}
System.out.println();
System.out.println("------------------------------------------------------------------------");
for (int i = 0; i < arrA.length - 1 ; i++) {
for (int j = 0; j < arrA.length -1 - i; j++) {
if (arrA[j] > arrA[j + 1]) {
int temp = arrA[j];
arrA[j] = arrA[j+1];
arrA[j +1] = temp;
}
}
}
System.out.println("------------------------------------------------------------------------");
System.out.print("数组2:"+ "{");
for (int i = 0; i < arrA.length; i++) {
if (i == arrA.length -1) {
System.out.print(arrA[i] + "}");
} else {
System.out.print(arrA[i]+",");
}
}
System.out.println();
System.out.println("------------------------------------------------------------------------");
}
}
打印结果:
