- public static void main(String args[]){
- //定义用于排序的数组
- int a[]={5,10,3,68,4,52,64,12};
- //调用冒泡排序方法
- bubbleSort(a);
- //打出排序后的数组
- System.out.println(Arrays.toString(a));
- }
- static void bubbleSort(int [] a){
- //获取数组长度
- int n = a.length;
- //定义boolean值,用于标识是否有交换行为发生过,发生过为true,否则为false
- boolean flag=true;
- //定义临时数用于交换数组中的数
- int temp;
-
- for(int i=0;i<n;i++){
- if(flag==false){//是否出现交换,没有出现交换则排序已经完成
- return;
- }
- flag=false;
- for(int j=n-1;j>i;j--){
- if(a[j]<a[j-1]){
- temp=a[j];
- a[j]=a[j-1];
- a[j-1]=temp;
- flag=true;//出现交换,标签为真
- }
- }
- }
复制代码
增加一个标签,每次循环判断是否有交换行为,如果没有,则说明排序已经完成,不需要下次循环,可减少循环次数,提高效率 |
|