美文网首页
初级排序算法及游戏规则

初级排序算法及游戏规则

作者: 面向全麦面包编程 | 来源:发表于2020-07-15 20:53 被阅读0次

直接上模板类代码,源码出自《算法》第四版

public class Example {
    public static void sort(Comparable[] a) {
        //详见具体算法
    }

    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;
    }

    private static void show(Comparable[] a) {
        for (Comparable c : a) {
            System.out.print(c + " ");
        }
    }

    //测试是否有序
    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;
    }
}

Tips:

  • 大多数情况下,我们的排序代码只会通过两个方法操作数据:
    less()方法对元素进行比较,exch()方法将元素交换位置
  • 要排序,那就要按照一定的规则,Java中是用Comparable接口实现规则的抽象,当然你也可以手写一个Comparator类,这里谈一谈Comparable接口
 int compareTo(T o){
 //比较此对象与指定对象的顺序,如果该对象小于,等于,大于指定对象,则分别返回-1,0,1
 }

这里我想说的是当返回-1时,说明你当前对象的权重小,如果返回+1 说明当前对象权重大,最后排序是按权重大小排序(从小到大),也就是说指定对象一定在此对象前面。比方说现在有个Integer类型的集合,里面放了[1,2,3],默认返回值如我前面接口描述的那样,同样我期待排序后的结果为升序,将前两个拿出来比一下,Integer[0].compareTo(Integer[1]),结果返回-1,说明Integer[0]=1的权重小,应该排在前面,那么结果还是[1,2,3],如果想得到[3,2,1]的结果,就需要改变返回值。

if (this.age>that.age(指定对象)) return -1
  • 排序算法很多,其中 快速排序归并排序 相当重要!(熟练到不假思索!),这里我还很补充选择排序、插入排序、优先队列(刷题时也会用到)、堆排序,至于其他的(如希尔排序等),想了解可以查阅相关资料

相关文章

  • 初级排序算法及游戏规则

    直接上模板类代码,源码出自《算法》第四版 Tips: 大多数情况下,我们的排序代码只会通过两个方法操作数据:les...

  • 排序算法

    本篇文章参考《算法(第四版)》以下为文章的整体结构,方便浏览,也方便我以后回忆。 初级排序算法 游戏规则 我们以数...

  • 算法——初级排序算法

    最近,在通过《算法4》这本书来重新学习一下算法,从最初级的排序算法。初级的排序算法有3种:选择排序、插入排序、希尔...

  • 《算法》-排序[初级排序算法]

    《算法》系列,是面向《算法》第四版这本书进行学习,会去除繁琐的文字叙述,会从以下两个方面去理解一个算法: 1、...

  • 『算法』之 初级排序算法总结

    本篇文章同时收录在我的个人博客:『算法』之 初级排序算法总结 选择排序 一种最简单的排序算法:首先,找到数组中最小...

  • 排序算法

    排序算法 排序是最基本的算法之一,常见的排序算法有插入排序、希尔排序、选择排序、冒泡排序、堆排序、归并排序及快速排...

  • 《算法4》2.1 - 选择排序算法(Selection Sort

    选择排序算法(Selection Sort)是排序算法的一种初级算法。虽然比较简单,但是基础,理解了有助于后面学习...

  • 逻辑之美(2)_选择排序

    开篇 上篇我们好好聊了聊冒泡排序,这篇我们来聊聊另一种初级排序算法——选择排序 正文 选择排序的算法思路同样很简单...

  • (三)排序

    1 初级排序算法 排序算法关注的主要是重新排列数组元素,其中每个元素都有一个主键。排序算法是将所有元素主键按某种方...

  • 算法初级(排序算法)

    结构化编程&伪代码 说到排序算法,就要先讲一下什么是结构化编程,总结一下来说,结构化编程有以下特点:1.一行一行执...

网友评论

      本文标题:初级排序算法及游戏规则

      本文链接:https://www.haomeiwen.com/subject/haojhktx.html