黑马程序员技术交流社区
标题:
【Pinger】 Java基础之冒泡排序法以及原理图
[打印本页]
作者:
万合天宜
时间:
2015-2-4 11:42
标题:
【Pinger】 Java基础之冒泡排序法以及原理图
import java.util.Arrays;
public class BubbleSort {
/**
* 冒泡排序: 相邻元素两两比较,大的往后放,第一次比较完后,最大元素出现在最大索引处。
*/
public static void main(String[] args) {
// 定义要排序的数组
int[] arr = { 12, 45, 42, 0, -15, 99 };
/*
* 方式一: 冒泡排序法
*/
//输出排序前数组
System.out.println("排序前:");
printArray(arr);
// 调用排序功能
bubSort(arr);
//输出排序后数组
System.out.println("排序后:");
printArray(arr);
/*
* 方式二:直接调用Arrays类的sort方法进行排序
*/
//输出排序前数组
System.out.println("排序前:");
printArray(arr);
// 调用排序算法
Arrays.sort(arr);
//输出排序后数组
System.out.println("排序后:");
printArray(arr);
}
// 冒泡排序代码实现
public static void bubSort(int[] arr) {
// 外循环变量是冒泡比较的次数
for (int i = 0; i < arr.length - 1; i++) {
// 其中,arr.length-1 是为了防止越界,因为后面出现了j+1
// arr.length-1-x 是每一次比较的次数在递减
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;
}
}
}
}
// 遍历数组
public static void printArray(int[] arr) {
//输出左括号
System.out.print("[");
//遍历输出数组
for (int x = 0; x < arr.length; x++) {
//如果是最后一个元素,则补上又括号
if (x == arr.length - 1) {
System.out.println(arr[x] + "]");
}
//如果不是则输出元素和“, ”
else {
System.out.print(arr[x] + ", ");
}
}
}
}
复制代码
原理图:
数组高级冒泡排序原理图解.jpg
(1.93 MB, 下载次数: 8)
下载附件
2015-2-4 11:29 上传
作者:
qiuyuhuaihua
时间:
2015-2-4 11:45
楼主对冒泡排序理解的好什么呀,适合新手,学过的也能加深理解!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2