Java
来源:互联网 发布:指纹比对算法 编辑:程序博客网 时间:2024/06/05 07:14
冒泡排序几乎是个程序员都写得出来,但是面试的时候如何写一个逼格高的冒泡排序却不是每个人都能做到,下面提供一个参考代码:
import java.util.Comparator; /** * 排序器接口(策略模式: 将算法封装到具有共同接口的独立的类中使得它们可以相互替换) * */public interface Sorter { /** * 排序 * @param list 待排序的数组 */ public <T extends Comparable<T>> void sort(T[] list); /** * 排序 * @param list 待排序的数组 * @param comp 比较两个对象的比较器 */ public <T> void sort(T[] list, Comparator<T> comp);}
import java.util.Comparator; /** * 冒泡排序 * */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 <T> void sort(T[] list, Comparator<T> 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; } } } }}
阅读全文
1 0
- java
- JAVA
- JAVA
- JAVA
- java
- Java
- Java
- JAVA:
- java
- java
- java
- java
- Java
- java
- java
- java
- JAVA?
- java
- java动态代理和spring动态代理对比
- windows下使用nexus搭建maven私服的流程和说明
- MySQL常用语句
- 查询结果集数据插入另一表
- idea 安装配置tomcat 及版本问题,以及tomcat context initialized event to listener instance of class org.springfr记
- Java
- jq给单/复选框添加checked属性无效的解决办法
- iOS 11开发教程(十)iOS11无线连接手机真机测试
- Java如何让程序一直运行,不停止
- 15.4 Content-Type:MIME 类型和字符集
- Joda-Time 用法
- Util工具类 跨Oracle、MySQL通用分页查询
- iOS算法总结-快速排序
- HTML常用标签