随笔分类 - 数据结构常用算法复习
摘要:求解图中的最短路径算法有:Dijkstra算法和Floyd算法。Dijkstra算法:求带权有向图中某个源点到其余各顶点的最短路径,最常用的是Dijkstra算法。该算法设置一个集合S,记录已求得的最短路径的顶点,初始时把源点V0放入S中。此外,在构造过程中还设置了两个辅助数组:dist[]:记录了从源点V0到其他个顶点当前的最短路径长度。path[]:path[i]表示了从源点到顶点i之间的最短路径的前驱结点,在算法结束前,可根据其值追溯得到源点V0到顶点Vi的最短路径。1)初始化:集合S初始为{0},dist[]的初始值为dist[i]=arcs[0][i],i=1,2,3,……2)从顶点
阅读全文
摘要:快速排序的时间复杂度为O(nlogn),在排序算法中效率较高,所以经常被采用。快排的思想为分治法,软件公司笔试面试中经常会考到该算法。 算法的基本思想:1.先从数列中抽出一个数作为基准数2.分区过程,将比这个数大的数全部放在右边,将比这个数小的全放在左边3.对第二步分区得到的两个区在进行分区,直到每一个区中只有一个数算法过程举例:原始数列: 27 99 11 37 92 78 21 35 57 621.抽出一个数作为基数:27(low=0,high=9)2.分区,从右往左找,找到比27小的数(62比27大,high--,57比27大,high—….)21 99 11 37 92 78 27 3
阅读全文

浙公网安备 33010602011771号