冒泡排序优化
原理
冒泡排序即:第一个数与第二个数进行比较,如果满足条件位置不变,再把第二个数与第三个数进行比较.不满足条件则替换位置,再把第二个数与第三个数进行比较,以此类推,执行完为一个趟,趟数等于比较的个数减一。
代码实现
public class BubbleSortLast {
public static void bubbleSort(int[] arrs) {
System.out.println("原数组:" + toString(arrs));
int index = arrs.length - 1;
for (int i = 0; i < arrs.length - 1; i++) {//控制趟数
//声明一个是否排好序
boolean isSorted = true;
int tp = 0;
System.out.println("第" + (i + 1) + "趟");
for (int j = 0; j < index; j++) {//次数
if (arrs[j] > arrs[j + 1]) {
isSorted = false;
int temp = arrs[j];
arrs[j] = arrs[j + 1];
arrs[j + 1] = temp;
tp = j;
}
System.out.println("第" + (j + 1) + "次:" + toString(arrs));
}
index=tp;
//判定
if(isSorted){
break;
}
}
}
public static String toString ( int[] arrs){
StringBuffer sb = new StringBuffer();
sb.append("]");
for (int i = 0; i < arrs.length; i++) {
sb.append(arrs[i]);
if (i != arrs.length - 1) {
sb.append(",");
}
}
sb.append("]");
return sb.toString();
}
public static void main(String[] args){
int[] arrs={2,23,12,45,34,56,67};
bubbleSort(arrs);
}
}