关闭
当前搜索:

Dijkstra算法详解

算法简介 用于计算从一个顶点到其余各顶点的最短路径算法 适用于权值为非负的图的单源最短路径,用斐波那契堆的复杂度O(E+VlgV) 主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止 算法思想这里我们以这组例子为列1 4 1 4 2 3 4 3 1 3 2 1在这里我们使用数组vis数组来标记未走过的节点以dis数组来存储从 1 到 到 1 2...
阅读(2136) 评论(0)

Floyd算法详解

简介 : Floyd算法是解决任意两点间的最短路径的一种算法 Floyd算法是一个经典的动态规划算法 Floyd算法的时间复杂度为O(N3),空间复杂度为O(N2) 算法描述与原理:首先我们的目标是寻找从点i到点j的最短路径。从一个节点 i 到 节点 j,无非就是两种情况 直接从 i 点 到 j 点 如 i 点出发经过若干个点到达 j 点 要找出最 i...
阅读(1833) 评论(0)

HDU 1754

Description 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。Input 本题目包含多组测试,请处理到文件结束。 在每个测试的第一行,有两个正整数 N 和 M ( 0import java.util.Sca...
阅读(731) 评论(0)

java实现快速排序

快速排序是平均速度最快的排序算法,他的平均时间复杂度 n*log n)快速排序采用分治法来进行排序,首先先给出一个数组,在一开始随意选择一个数pivot,已pivot作为这个数组的分界点,把大于pivot的数放在右边,小于pivot的数放在左边,然后在已pivot的两边分界点,右进行一次上一次的操作,这样就能达到排序的目的了,好了,我们来看一下代码。private static void parti...
阅读(471) 评论(0)

java 实现二分归并排序

首先 解释一下什么是归并排序的精髓就是把一个乱序数组划分成小的数组来排序,然后再把小的数组合并成大的小组,下面的这张图能够明确说明什么是归并排序 虽然看图感觉二路归并排序很简单,但是实际操作起来还是有一点麻烦的这是主函数public static void main(String[] args) { int[] array = new int[] { 10, 9, 5, 11, 4...
阅读(4789) 评论(0)

java实现 堆排序

在实现堆排序之前 我们先来介绍一下什么是最大堆与最小堆最大堆 与最小堆 都是一个二叉树 也称为二叉堆二叉堆的定义 每个节点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)最大堆 : 当父节点的键值总是大于或等于每一个子节点 时被称为最大堆最小堆 : 当父节点的键值总是小于或等于每一个子节点 时被称为最小堆最小堆 : 1 2...
阅读(14703) 评论(2)

筛选100万以内的素数

/** describe: 筛选100万以内的素数 author blue lightning date : 2015 */ #include #include int p[1000010]; int vis[1000010]; int cnt; void prime() { cnt=0; memset(vis,0,sizeof(vis));//初始化数组 in...
阅读(288) 评论(0)
    个人资料
    • 访问:112737次
    • 积分:1390
    • 等级:
    • 排名:千里之外
    • 原创:41篇
    • 转载:3篇
    • 译文:0篇
    • 评论:32条
    博客专栏
    最新评论