实现数字升序排序
举例:{87,56,43,35,66}
分析:每次比较相邻两数,小的交换到前面,每轮比较结束后最大的数交换到最后
第一轮:(1)56 87 43 35 66(87和56比较,56小,交换)
(2)56 43 87 35 66(87和43比较,43小,交换)
(3)56 43 35 87 66(87和35比较,35小,交换)
(4)56 43 35 66 87(87和66比较,66小,交换)
本轮87最大,下面不再进行比较
第二轮:(1)43 56 35 66(56和43比较,43小,交换)
(2)43 35 56 66(56和35比较,35小,交换)
(3)43 35 56 66(56和66比较,56小,不交换)
本轮66最大,下面不再进行比较
第三轮:(1)35 43 56(43和35比较,35小,交换)
(2)35 43 56(43和56比较,43小,不交换)
本轮56最大,下面不再进行比较
第四轮:(1)35 43(35和43比较,35小,不交换)
由上总结结论:n个数排序,比较n-1轮,每轮比较(n-(轮数))次
代码实现:
import java.util.Arrays;
//冒泡排序
public class Bubble {
public static void main(String[] args) {
int []arr={87,56,43,35,66};
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-1-i; j++) {
if(arr[j]>arr[j+1]){//比较相邻两数,小的交换到前面
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
//输出按升序排序后的结果
System.out.println(Arrays.toString(arr));
}
}
原文:https://www.cnblogs.com/qby-java/p/13223631.html