冒泡排序
简单的来说,当升序排序时,将大的数往后移,小的数往前移;降序排序时就是将小的数往后移,将大的数往前移。
package cn.paixu;
import java.util.Arrays;
/**
* 减少每趟的次数
* 考虑有序,减少趟数
* @author Athena
*
*/
public class MaoPao {
public static void main(String[] args) {
int[] arr = {3,1,5,2,9};
sort(arr);
for(int t:arr) {
System.out.print(t+" ");
}
}
public static void sort(int[] arr) {
int temp;
for(int i=0;i<arr.length-1;i++) { //控制进行比较的轮数
boolean sorted = true;//考虑有序,减少趟数
//System.out.println("第"+(i+1)+"烫");
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;
sorted = false; //考虑有序,减少趟数
}
//System.out.println(Arrays.toString(arr));
}
if(sorted) {
break;
}
}
}
}