冒泡排序思想:
通过比较相邻数之间的大小,小的放前面,大的放后面。
这样比较要经过好几趟,每一趟都要比较连续的数组对,每一趟能排出一个最大的在后面。
如果n个数,那么需要n-1趟,
实际操作:通过两个for循环。外层用于控制排序轮数,内层用于交换比较两个数的位置。
代码如下:
public class MyProject {
public static void bubble(int a [], int n){ //a为待排序数组,n为数组个数
int i,j,t; // i为趟数,j为每一趟的次数,t临时变量
for(i = 0; i < n - 1; i++){
for(j = 0; j < n-i-1; j++){
if(a[j] > a[j + 1]){ //前者比后者大,则交换
t = a[j];
a[j ] = a[j + 1];
a[j + 1] = t;
}
}
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
int a[] = new int []{2,5,84,56,8,74,31,68,78};
System.out.print("排序前:");
for(int b:a){
System.out.print(b + ",");
}
MyProject.bubble(a,a.length); //调用排序方法
System.out.println();
System.out.print("排序后:");
for(int b:a){
System.out.print(b + ",");
}
}
}
结果: