版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/weixin_43802738/article/details/86496083
冒泡排序算法的原理如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
思路:
相邻两个元素进行比较一次,符合条件交换位置
代码实现:
public class test {
public static void main(String[] args) {
int arr[]= {21,3,43,5,7,1}; //定义数组
//遍历排序前的数组
System.out.print("排序前数组元素为:");
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]);
if(i<arr.length-1) { //除最后一个元素外,依次添加“,”进行分割
System.out.print(",");
}
}
System.out.println(); //换行
bubbleSort(arr); //调用bubbleSort()方法,并将实参arr数组传进去
}
public static void bubbleSort(int[] arr) {
for(int j=0;j<arr.length;j++) { //控制轮数
for(int i = 0;i<arr.length-1;i++) { //每循环一次找出一个最值
//比较相邻两个元素大小,此为从小到大排序,若想从大到小进行排序,只需改为 arr[i]<arr[i+1] 即可
if(arr[i]>arr[i+1]) {
//交换位置
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}
//遍历排序后的数组,查看效果
System.out.print("排序后数组元素为:");
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]);
if(i<arr.length-1) { //除最后一个元素外,依次添加“,”进行分割
System.out.print(",");
}
}
}
}