冒泡排序
代码如下:
public static void main(String[] args) {
int[] arr=new int[] {49,38,65,97,76,13,27,49}; //arr.length=8
//冒泡排序:从小到大
for(int i=0;i<arr.length-1;i++) { //8个元素只需排列7趟:0~6
/*
* 内层循环控制每趟比较次数
* 第一趟从arr[0]比到arr[7],8个数字比7次,找到最大的元素,置与arr[7]
* 第二趟从arr[0]比到arr[6],7个数字比6次,找到次大的元素,置与arr[6]
* 以此类推
*/
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;
}
}
}
//遍历
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+"\t");
}
}
第一趟比较过程如下:
(第一次:有交换)
(第二次)
(第三次)
(第四次:有交换)
(第五次:有交换)
(第六次:有交换)
(第七次:有交换)
到此第一趟排序结束,找到了8个元素中的最大值并置于arr[7],此后无需比较arr[7],第二趟只需比较剩下7个元素找到次大值……以此类推