冒泡排序(嵌套循环)
原理:
- 比较相邻两个元素的大小,如果第一个数比第二个数大,则交换它们的位置,n个数冒(n-1)轮
- 每一轮排序都会冒出一个最大值或者最小值
- 每一次都和下一个元素比,冒出来的就不再参与排序了
- 每冒一轮下一轮就减少一次排序
- 依次循环,直到结束
如何优化
public static void sort(int[] a){
int temp = 0;//临时变量
for (int i = 0; i < a.length-1; i++) {
boolean flag = false;//做个标记,减少没有意义的比较,已经排好序就不用再排序了
for (int j = 0; j < a.length-1-i; j++) {
if(a[j+1]<a[j]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
flag = true;
}
}
if(!flag){
break;
}
}
}