冒泡排序——图解+java源码
冒泡排序
冒泡排序的算法
初始数组

将天平放在序列的右端,并比较天平左右数字

这种情况下,我们比较6和7

因为6小于7,所以左右的数字交换

比较完成后,逐一移动天平

重复同样的操作,直到天平移动的左端

直到天平到达左端

将天平返回右端

重复相同的操作,直到所有的数字都被排序。

参考代码:
public class name {
public static void main(String [] args){
//定义一个无序数组
int [] arr = {75,87,56,45,89,100,76,34,89,97};
//排序前输出
System.out.println("排序前");
for(int score :arr){
System.out.print(score+"\t");
}
//排序
bubbleSort(arr);
//排序后输出
System.out.println("排序后");
for(int score :arr){
System.out.print(score+"\t");
}
}
public static void bubbleSort(int arr[]){
//大循环:n个元素排序,则至多需要n-1趟循环
int temp;
int i;
for(i=0;i<arr.length-1;i++){
//1. 假设有序
boolean flag = true;
//2.小循环:每一趟循环都从数列的前两个元素开始进行比较,比较到数组的最后
for(int j=0;j<arr.length-1-i;j++){
//如果前一个大于后一个
if(arr[j] > arr[j+1]){
//交换
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
//发生了交换,数组无序
flag = false;
}
}
//3.判断是否有序,有序,退出
if(flag){
break;
}
}
}
}
运行结果:


354

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



