冒泡排序:
冒泡排序(Bubble Sorting)的基本思想是:通过对待
排序序列从前向后(从下标较小的元素开始),依次比较
相邻元素的值,若发现逆序则交换,使值较大
的元素逐渐从前移向后部,就象水底下的气泡一样逐渐
向上冒。
代码实现
/**
* 冒泡排序
* @param arr
*/
public static void bubbleSort(int [] arr){
int temp=0;
for (int i=0;i<arr.length-1;i++){
for (int j=0;j<arr.length-1-i;j++){
if (arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
如果一趟比较下来,没有元素交换,就说明已经是有序的了,不需要之后的比较了。因此可以优化冒泡排序。
/**
* 冒泡排序优化
* @param arr
*/
public static void bubbleSort2(int [] arr){
int temp=0;
boolean flag=false;
for (int i=0;i<arr.length-1;i++){
for (int j=0;j<arr.length-1-i;j++){
if (arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
flag=true;
}
}
if (flag){
flag=false;
}else {
break;
}
}
}
评论区