冒泡排序(java)
程序员文章站
2022-03-22 09:02:09
...
- 冒泡排序概述
对N个数进行排序,依次比较相邻两个数,大的数放在后面,小的数放在前面。
第一轮:首先比较第一个数和第二个数,将大的数放在后面,接下来比较第二个数和第三个数,大的放后面,一直到最后一个数为止。比较完后最后一个数应该就是最大的数。
第二轮:除开最大的那个数,和第一轮一样的方法进行比较,倒数第二个数应该就是第二大的数。
.
.
.
第N-1轮:结束,排序完成。 - 实现代码如下:
package sort;
import java.util.Arrays;
/**
* 冒泡排序分析
* @author nanyue
*
*/
public class Sort {
public static void main(String[] args) {
int sortArray [] = {132,23,29,12,9};//定义一个数组并赋值
System.out.println("冒泡排序");
bubbleSort(sortArray);//调取冒泡排序方法
}
/**
* 冒泡排序
* @param arr
*/
public static void bubbleSort(int [] arr){
int temp;
for(int i = 0;i < arr.length-1;i++){
System.out.println("第" + i + "轮");
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;
System.out.println(Arrays.toString(arr));
}else{
System.out.println(Arrays.toString(arr));
}
}
}
}
}
输出结果:
冒泡排序
第0轮
[23, 132, 29, 12, 9]
[23, 29, 132, 12, 9]
[23, 29, 12, 132, 9]
[23, 29, 12, 9, 132]
第1轮
[23, 29, 12, 9, 132]
[23, 12, 29, 9, 132]
[23, 12, 9, 29, 132]
第2轮
[12, 23, 9, 29, 132]
[12, 9, 23, 29, 132]
第3轮
[9, 12, 23, 29, 132]
从输出结果看,比较了N-1轮,每次比较的数为相邻两数,比较完毕大的数放在了后面。
上一篇: 背背佳