冒泡排序思想:
通过比较相邻数之间的大小,小的放前面,大的放后面。
这样比较要经过好几趟,每一趟都要比较连续的数组对,每一趟能排出一个最大的在后面。
如果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 + ",");
}
}
}
结果:
本文深入讲解了冒泡排序算法的基本思想及其实现过程。通过对比相邻元素大小,将较大的元素逐步向数组末尾移动,每一轮都能确保当前数组中最大的元素被放置在正确的位置。文章提供了详细的代码示例,展示了如何使用双层for循环实现冒泡排序。
7099

被折叠的 条评论
为什么被折叠?



