public class BubboUtil {
private BubboUtil(){}
public static <E extends Comparable<E>> void sort(E[] arr){
for (int i = 0; i < arr.length - 1; i++) {
for(int j=0; j + 1 < arr.length - i;j++){
if(arr[j].compareTo(arr[j+1]) > 0){
swap(arr,j,j+1);
}
}
}
}
private static <E extends Comparable<E>> void swap(E[] arr, int j, int i) {
E temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
public static <E extends Comparable<E>> void sort1(E[] arr){
for (int i = 0; i + 1 < arr.length; i++) {
boolean isSwap = false;
for (int j = 0; j + 1 < arr.length - i; j++) {
if(arr[j].compareTo(arr[j+1]) > 0){
swap(arr,j,j+1);
isSwap = true;
}
}
if(!isSwap){
break;
}
}
}
public static <E extends Comparable<E>> void sort2(E[] arr){
for (int i = 0; i + 1 < arr.length;) {
int isSwapCount = 0;
for (int j = 0; j + 1 < arr.length - i; j++) {
if(arr[j].compareTo(arr[j+1]) > 0){
swap(arr,j,j + 1);
isSwapCount = j + 1;
}
}
i = arr.length - isSwapCount;
}
}算法与数据结构——冒泡排序
于 2023-03-04 14:05:43 首次发布
该文章展示了三个使用Java编写的静态方法,分别实现了对实现了Comparable接口的数组进行排序。方法包括经典的冒泡排序,带有优化的冒泡排序(如果在一轮中没有交换则提前结束),以及一种基于交换次数调整迭代索引的排序算法。
2979

被折叠的 条评论
为什么被折叠?



