详细的算法分析,动态演示参考冒泡排序详解
冒泡排序是一种交换排序。
算法思想:是将越小的元素经过替换而逐渐的“浮”到顶端。
算法性能分析:
由于在冒泡排序中两个相同的元素的前后顺序
并没有变。由此冒泡排序是稳定的排序算法
java代码实现
public int[] bubbleSort(int[] arry){
for(int i=arry.length-1;i>=1;--i){
int flag=0;//这里的标志位是优化的一下,当存在交换就为1,不存在交换证明已经排序完成
for(int j=1;j<=i;j++ ){
if(arry[j-1]>arry[j]){
int temp=arry[j];
arry[j]=arry[j-1];
arry[j-1]=temp;
flag=1;
}
}
if(flag==0)
return arry;
}
return arry;
}
总结
代码的核心思想
- 冒泡是从顶端到底端逐渐交换,由此第一个循环应该由arry.length-1,开始
- 注意flag标志位