冒泡排序几乎是个程序员都写得出来,但是面试的时候如何写一个逼格高的冒泡排序却不是每个人都能做到,下面提供一个参考代码:
import java.util.Comparator;
/**
*排序器接口(策略模式:将算法封装到具有共同接口的独立的类中使得它们可以相互替换)
*@author 开发喵
/
public interface Sorter {
/

*排序
*@param list 待排序的数组
/
public <T extends Comparable> void sort(T[] list);
/

*排序
*@param list 待排序的数组
*@param comp 比较两个对象的比较器
*/
public void sort(T[] list, Comparator comp);
}

import java.util.Comparator;
/*
*冒泡排序
*@author 开发喵
*/
public class BubbleSorter implements Sorter {
@Override
public<T extends Comparable(T>> void sort(T[] list){
boolean swapped = true;
for (int i = 1, len = list.length; i〈 len && swapped;++i){
swapped = false;
for (int j = 0; j< len – i;++j){
if (list[j].compareTo(list[j + 1])>0){
T temp = list[j];
list[j]= list[j + 1];
list[j + 1]= temp;
swapped = true;
}
}
}
}
@Override
public void sort(T[] list, Comparator comp) {
boolean swapped = true;
for (int i= 1, len = list.length;i < len && swapped;+i){
swapped = false;
for (int j= 0; j< len – i;++j){
if (comp.compare(list[j], list[j + 1])> 0){
T temp = list[j];
list[j]= list[j + 1];
list[j + 1]= temp;
swapped = true;
}
}
}
}
}

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.