2019/3/12孙小北

最短路径之Dijkstra算法

因为最近在用R语言,所以代码使用R语言完成。语言只是工具,算法才是灵魂。Floyd算法简单暴力,三个for循环搞定。但是相应是要付出代价的,时间复杂度为O(n^3)。今天学习的是一个O(n^2)的算法--经典Dijkstra(迪杰斯特拉)算法,这也是经典贪心算法的好例子。Dijkstra算法是一种典型的单源最短路径算法,用于计算一个节点到其他所有节点的...

阅读全文»
2019/1/5孙小北

递归和迭代小结

一、相关概念递归递归(recursion)在计算机科学中是指一种通过重复将问题分解为同类问题的子问题而解决问题的方法。可以极大地减少代码量。递归的能力在于用有限的语句来定义对象的无限集合。递归是设计和描述算法的一种有力的工具,能采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模较小的问题,然后...

阅读全文»
2018/4/2孙小北

605开发组算法周周练(二)

期限:3天;题目:1道;类型:基础、排序算法1、完成三种排序算法:冒泡排序、选择排序、插入排序2、研究并理解透各个算法特点 排序方法平均情况最好情况最坏情况辅助空间稳定性冒泡排序O(n^2)O(n)O(n^2)O(1)稳定简单选择排序O(n^2) O(n^2)O(n^2)O(1)稳定直接插入排序O(n^2)O(n)O(n^2)O(1)稳定希尔排序O(nlogn)~O(n...

阅读全文»
2018/3/21孙小北

605开发组算法周周练(一)

2018-02-27 热身题 题目:2道;类型:基础1、输入一个正整数(int类型),逆序输出各位数字。思路:依次%10输出,直到剩余1位,并输出最后一位。#include using namespace std;int main(){ int a; while(cin>>a){ while(a/10!=0){ cout<

阅读全文»
2018/3/15孙小北

605算法周周练(零)

输入:预先不输入数据的组数-读到文件的结尾C语言while(scanf("%d%d",&a,&b)!=EOF){ preint("%d\n",a+b);}C++while(cin>>a>>b){ cout<

阅读全文»
2018/3/2孙小北

LintCode算法题整理(一)

1.A + B 问题:给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。int aplusb(int a, int b) { //采用异或运算^(不进位加法) //先进行异或,然后a&b获取进位,左移一位,直到没有进位 while(b!=0){ int c=a^b;//异或(不进位加法) int d=(a&b)<<1;//应进位的左移一位 a=c; b=d; ...

阅读全文»

物以类聚

最新评论

2017-10-06

一辈子不长,只有珍惜了,才不至于后悔。

2017-10-06

懂得感恩,才能走得更远。

标签云

归档