zoukankan      html  css  js  c++  java
  • 再谈排序与图论算法

    排序

    1.主存能放下的数据进行排序称为内部排序,反之称为外部排序(磁盘上)。
    2.任何进行交换相邻元素进行排序的算法均需要O(N2)的复杂度,任何进行比较的排序算法至少需要O(N*log(N))的算法复杂度。
    3.堆排序和归并排序的时间复杂度平均和最坏均为O(N*log(N))
    4.Java中执行一次对象比较是比较昂贵的,移动则是相对节省的,因此归并排序是java的默认泛型排序算法。C++中默认的是快速排序,比较耗费小;快排对于基本类型均具有最快速度。快速排序选取枢纽元的时候采用三数取中,切勿采用首元素。
     
    5.桶排序:排序的数小于整数M,实例化一个M维的数组初值为0,依次加入桶,再倒回去。
    6.基数排序:排序数组有n 个元素,实例化一个包含10个list的数组(相当于n个桶0123456789),依次从个位数到最高位把n个数放入桶中然后再倒回原数组,每次要清空list。
    适合字符串的排序。
     
    图论算法
    1.定义:
    (1)图由顶点和边组成G=(V,E),分为有向图和无向图;边可以有一定权重,边也称为度。有向无圈图也称为DAG。
    (2)图是稠密的考虑用邻接矩阵表示O(V2);稀疏图一般用邻接表表示O(E+V)。
     
    2.拓扑排序:是对有向无圈图的一种排序方式,使得如果存在一条从vi到vj的路径,那么在排序中vj就出现在vi的后面。(先找出没有入边的顶点)
     
    3最短路径算法:
    单源最短路径问题:给定顶点,到任意其他顶点的最短距离的算法O(V+E):(即为广度优先搜索breadth-first search)

     

    三年程序员,专注语音文本分析、大数据挖掘、预训练模型及知识图谱相关技术的探索
  • 相关阅读:
    8.10
    今日头条笔试题 1~n的每个数,按字典序排完序后,第m个数是什么?
    Gym 100500B Conference Room(最小表示法,哈希)
    CodeForces 438D The Child and Sequence(线段树)
    UVALIVE 6905 Two Yachts(最小费用最大流)
    Gym Conference Room (最小表示法,哈希)
    hdu 2389 Rain on your Parade(二分图HK算法)
    Codeforces Fox And Dinner(最大流)
    zoj 3367 Counterfeit Money(dp)
    ZOJ3370. Radio Waves(2-sat)
  • 原文地址:https://www.cnblogs.com/jetHu/p/8503817.html
Copyright © 2011-2022 走看看