题解 | #冒泡排序#

冒泡排序

http://www.nowcoder.com/practice/83ef53227d654df28c18fd6a377e8fee

冒泡排序

boolean flag;
for(int i=0; i<arr.length-1; i++){
  flag = true;
  for(int j=0; j<arr.length-i-1; j++){
    if(arr[j] > arr[j+1]){
      //a=a+b-(b=a); 交换
      arr[j] = arr[j] +arr[j+1] - (arr[j+1] = arr[j]);
      flag = false;
    }
  }
  //如果本次没有进行交换,则代表已经有序,提前结束
  if(flag) break;
}

交换方式二,异或:

if(arr[j] > arr[j+1]){        
  arr[j] =  arr[j] ^ arr[j+1];
  arr[j+1] = arr[j] ^ arr[j+1];
  arr[j] = arr[j+1] ^ arr[j];
}

全部评论

相关推荐

有了offer来还愿:学校不行,专业不行,学历不行,怎么找?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务