java冒泡排序

public class text3 {public static void main(String[] args) {int [] arr = {12,22,14,15,18};
//调用冒泡排序的方法int [] arr2 = bubbleSort1(arr);
//调用数组遍历的方法printArray(arr2);}
//数组的遍历的方法public static void printArray(int[] array){for(int i=0;i<array.length;i++){if(i==array.length-1){System.out.println(array[i]+"]");}else if(i==0){
                System.out.print("["+array[i]+",");}else {System.out.print(array[i]+",");}}}
//冒泡排序的方法定义public static int[] bubbleSort1(int[] arr) {for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j + 1];
​                    arr[j + 1] = arr[j];
​                    arr[j] = temp;}}}return arr;}
}

以下两个可以代替上面的冒泡排序的方法定义

// 冒泡排序---进阶版1
public int[] bubbleSort2(int[] arr) {
  int i=arr.length-1;//初始时,最后位置保持不变  
  while(i>0){int flag =0;//每趟开始时,无记录交换for(int j=0;j<i;j++){if (arr[j] > arr[j + 1]) {
​    flag=j;//记录交换的位置int temp = arr[j + 1];
​    arr[j + 1] = arr[j];
​    arr[j] = temp;
  }
}
i=flag; //为下一趟排序作准备
  }
  return arr;
}
// 冒泡排序---进阶版2
public int[] bubbleSort3(int[] arr) {
 int low=0;
 int high=arr.length-1;//设置变量的初始值
 while(low<high){int f1 =0,f2 =0;//每趟开始时,无记录交换for (int i= low; i< high; ++i) {     //正向冒泡,找到最大者
 if (arr[i]> arr[i+1]) {int tmp = arr[i]; arr[i]=arr[i+1];arr[i+1]=tmp;
​        f1=i;}}
​    high = f1;// 记录上次位置for (int j=high; j>low; --j) {      //反向冒泡,找到最小者if (arr[j]<arr[j-1]) {int tmp = arr[j]; arr[j]=arr[j-1];arr[j-1]=tmp;
​        f2=j;}}
​    low = f2; //修改low值
 }
 return arr;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值