主题:冒泡排序(在java中有用于排序的Arrays.sort(要排序的数组),嫌麻烦可以直接用这个)
给定一个数组,让数组升序(降序)排列。每次尝试找到当前待排序区间中最小(或最大)的元素,放到数组最前面(或最后面)。
问题:给定一个数组,让数组升序排序
思路:除len-1以外的1的个数i的取值范围为[0,len-1),可作为外层循环。次数j的取值范围为[0,len-1-i)作为内层循环。在冒泡排序中还有可能出现顺序已经排好但是循环还在继续的问题。可以引入一个布尔数,若此次循环没有数字交换则不进入if条件语句,break跳出。


代码:
public static void bubbleSort(int[] array){
//确定趟数
for(int i=0;i<array.length-1;i++){
boolean flg=false;
//确定每一趟的次数,若j<=array.length-1-i,则为不稳定序列
for(int j=0;j<array.length-1-i;j++){
if(array[j]>array[j+1]){
int tmp = array[j];
array[j] = array[j+1];
array[j+1] = tmp;
flg=true;
}
}
if(flg==false){
//没有交换
break;
}
}
}
public static void main(String[] args) {
int[] array={32,43,10,3,9,5};
System.out.println(Arrays.toString(array));
bubbleSort(array);
System.out.println(Arrays.toString(array));
}
本文介绍了一种经典的排序算法——冒泡排序,并通过Java代码实现。文章详细解释了冒泡排序的基本思想,即通过不断地比较相邻两个元素并进行必要的交换来完成整个数组的排序过程。此外,还提供了一个示例程序,演示了如何使用该算法将一个整数数组按升序排列。
2223

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



