冒泡原理:我们要对15 3 4 5 6升序排序
初始状态为:15 3 4 5 6
一趟排序后 3 4 5 6 15
public class SortedDemo {
public static void main(String[] args) {
int[] arr= {15,3,4,5,6};
bubbleSorted(arr);
}
/*冒泡排序*/
public static void bubbleSorted(int[] arr){
//10,1,2,3 1,2,3,10
for (int i = 0; i < arr.length; i++) { //轮数
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;
}
}
System.out.println("排序的趟数:"+i);
}
System.out.println("排序后输出数组:");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
代码优化之后如下所示
初始状态为:15 3 4 5 6
一趟排序后 3 4 5 6 15
package cn.tedu.day03;
/**
*
* 冒泡排序:
* 1、声明一个数组,存放8个元素
* 2、升续排列
* @author Administrator
*
*/
public class SortedDemo {
public static void main(String[] args) {
int[] arr= {15,3,4,5,6};
bubbleSorted(arr);
}
/*冒泡排序*/
public static void bubbleSorted(int[] arr){
boolean isSorted;
//10,1,2,3 1,2,3,10
for (int i = 0; i < arr.length; i++) { //轮数
isSorted = true; //假设剩下的元素已经排好序了
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;
isSorted = false; //一旦需要交换数组的元素,说明剩下的元素没排好序
}
}
System.out.println("排序的趟数:"+i);
if (isSorted) {
break; //如果没哟发生交换,说明剩下的元素已经排序完毕。
}
}
System.out.println("排序后输出数组:");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}