给出一组数字,使其按从小到大的顺序排列出来,如何实现呢?这可以用到经典的冒泡排序,其实现过程和演示代码如下:
/**
* 冒泡排序
* @author 语仄无言
*/
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {24, 69, 80, 57, 13};
int temp = 0; //用于辅助交换的变量
//将多轮排序使用外层循环包裹起来即可
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) { //4次比较
//如果前面的数>后面的数,则位置互换
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
System.out.println("\n===第" + (i + 1) + "轮===");
for (int j = 0; j < arr.length; j++) {
System.out.print(arr[j] + "\t");
}
}
}
}
使用到两个for循环和一个if判断,简单来说就是多次比较临近两个数字的大小,然后将其位置互换,代码中给出了一个变量temp用户辅助交换(用于保存相对较小的数字,因为如果不报存较小的数字,而直接将数组下标"arr[j+1]"的话,原本在这个位置的数字将会直接被替换,会导致数组下标为”arr[j]“的数值和"arr[j+1]"后的数值相等了),互换的次数为所给出的数字的个数-1,第一轮比较时会将最大的一个数移动到数组的最后一个位置,第二轮则将第二大的数字移动到数组的倒数第二个位置,然后依次类推。后面就是打印排序后的结果了,觉得不需要的话可以直接拿掉。
1万+

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



