算法4
文章平均质量分 92
lmc7
这个作者很懒,什么都没留下…
展开
-
优先队列的多种实现方式与比较
优先队列很多情况下,我们需要对一组数据进行处理,处理不同特征的元素就像电脑处理不同的程序一样,需要为每个元素进行优先级划分,总是处理优先级高的元素或是程序而这样的数据结构应该支持:删除最大元素(优先级最高先执行)插入元素(优先级高的可以进行“插队”)一些应用场景:模拟系统:按照时间顺序处理事件任务调度:键值的优先级决定了应该首先执行哪些任务数值计算优先队列可以通过简单的数组,链表,堆来实现Sort├─ MaxPQ.java // 通过堆实现优先队列├─ OrderedA原创 2020-06-17 21:22:23 · 1091 阅读 · 0 评论 -
快速排序算法详解与其他排序算法的比较
快速排序属于原地排序,与自顶向下归并类似的是,也是先进行大数组的排序,然后递归到小数组,在进行排序时,先选定一个元素为切分元素,按大小将其他元素放到左右两侧即可动画演示: P为切分元素 L为左标记 R为有标记package Sort;import edu.princeton.cs.algs4.StdRandom;import static Sort.SortExample.*;import static edu.princeton.cs.algs4.StdRandom.unifo原创 2020-05-28 11:23:28 · 771 阅读 · 0 评论 -
归并排序详解,与其他排序算法的比较
归并排序将两个有序的数组归并成一个更大的有序数组一种简单的方法是:将两个数组归并到第三个数组中(需要额外的空间)更常见的做法是:避免了开辟额外空间,采用原地归并的方式原地归并的抽象方法 public static void merge(Comparable[] a, int lo, int mid, int hi){ // 将大数组a分成两个小数组,a[lo, mid], a[mid, hi] 分别进行排序 int j = mid+1; i原创 2020-05-27 19:29:58 · 430 阅读 · 0 评论 -
选择排序,插入排序,希尔排序的详解与比较
排序算法运行时间,性能额外的内存使用原地排序算法:除了函数调用所需的栈和固定数目的实例变量之外无需额外内存其他排序算法:需要额外内存空间来存储另一份数组副本接受任何可以比较的数据类型(泛型)排序算法类模板需要导入package Sort;import java.util.Scanner;/** *排序算法类的模板 */public class SortExample { public static void sort(Comparable[] a){原创 2020-05-26 10:13:29 · 455 阅读 · 1 评论