算法之排序的简介及排序模板

来源:互联网 发布:sql语句增加一列数据 编辑:程序博客网 时间:2024/06/05 14:29

排序


  1. 什么是排序

    排序就是将一组对象按照某种逻辑顺序重新排列的过程。

  2. 排序在实际项目中的用例

    (1) 信用卡账单中的交易是按照日期排序的;

    (2)现在几乎所有的O2O应用中都会存在“按范围搜素、离我最近、显示距离”等等基于

    位置的交互,距离由近到远排序。

  3. 學習排序算法的实际意义

    (1)对排序算法的分析将有助于你全面裂解,比较算法性能

    (2)类似的技术也能有效解决其他类型的问题

    (3)排序算法常常是我们解决其他问题的第一步

  4. Comparable接口

    此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。

  5. 排序算法类的模板

public class Example {    /**     * 排序代码放在sort方法中     *     * @param a     */    public static void sort(Comparable[] a) {    }    /**     * 对元素进行比较     *     * @param v     * @param w     * @return     */    private static boolean less(Comparable v, Comparable w) {        return v.compareTo(w) < 0;    }    /**     * 将元素交换位置     */    private static void exch(Comparable[] a, int i, int j) {        Comparable t = a[i];        a[i] = a[j];        a[j] = t;    }    /**     * 排序算法是否成功,确认排序后数组元素都是有序的     *     * @param a     * @return     */    public static boolean isSorted(Comparable[] a) {        for (int i = 1; i < a.length; i++) {            if (less(a[i], a[i - 1])) {                return false;            }        }        return true;    }}

以上的排序算法框架,我们都会为这样一个类实现一个sort()方法并将Example改为算法的名称。这段代码使我们的排序方法适用于任意实现了Comparable接口的数据类型。

原创粉丝点击