冒泡算法原理:重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
冒泡排序的过程图:
算法实现:
最多比较n-1次
每次比较次数 [0,n-i-1],因为之前i次已经保证最后i个数字是按照顺序排好的,且为较大数字
public int[] bubble(int[] unsorted){
for(int i = 0;i < unsorted.length-1;i++){
for(int j = 0;j < unsorted.length-i-1;j++){
if(unsorted[j] > unsorted[j+1]){
int tmp = unsorted[j];
unsorted[j] = unsorted[j+1];
unsorted[j+1] = tmp;
}
}
}
return unsorted;
}