冒泡排序
冒泡排序的实现
冒泡排序:将数组的第一个元素与第二个进行比较,是否需要交换位置,再将第二个元素与第三个元素进行比较,是否需要交换元素…依次进行下去,一直比较到数组最后一位元素,就可以选出一个最值,这也叫一轮比较,第二轮比较再将第一个元素和第二个比较…循环下去,实现排序
public static int[] sort(int[] arr) {
for (int i = 0; i < arr.length - 1 ; i++) {
for (int j = 0; j < arr.length - 1; j++) {
if(arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
冒泡排序的优化一
public static int[] sort1(int[] arr) {
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]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
冒泡排序的优化二
public static int[] sort2(int[] arr) {
for (int i = 0; i < arr.length - 1 ; i++) {
boolean flag = true;
for (int j = 0; j < arr.length - 1 - i; j++) {
if(arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = false;
}
}
if(flag == true) {
break;
}
}
return arr;
}