对于冒泡排序是最容易,也是最容易在笔试中遇到的试题:接下来我们讨论一下单循环的冒泡排序是如何实现的.
直接上代码:
package cn.itcast.sort;
public class BubbleSort {
public static void main(String[] args) {
int arr[]={2,6,5,4,9};
bubbleSort(arr);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
//单个循环实现冒泡排序
private static void bubbleSort(int[] arr) {
//定义比较的次数,次数为数组长度-1
int times=arr.length-1;
for(int i=0;i<times;i++){
if(arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
//关键点:判断是否是最后一次比较,若是,那么充值变量
if(i==times-1){
i=-1;//i重置为-1,随后for循环会自动++,因此下次比较时i值为0
times--;//比较次数递减1
}
}
}
}
运行结果:
2 4 5 6 9