排序算法 平均时间复杂度 最好情况 最坏情况 空间复杂度 稳定性 冒泡排序 O(n2) O(n) O(n2) O(1) 稳定 选择排序 O(n2) O(n2) O(n2) O(1) 不稳定 插入排序 O(n2) O(n) O(n2) O(1…
分类:Study-notes
《剑指Offer》题目解析(5)
题目7 链表倒数第k个结点 题目描述 输入一个链表,输出该链表中倒数第k个结点。 题目解析 我们很容易可以想到,由于这是一个单向链表,所以我们可以第一遍先遍历这个链表,看有多少个结点(假设为n),然后计算出pos=n-k+1,然后我们只需要…
《剑指Offer》题目解析(4)
题目1 斐波那契数列 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 代码 递归方法: int Fibonacci(int n) { if(n==0) ret…
《剑指Offer》题目解析(3)
题目1:机器人的运动范围 题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(3…
算法笔记之分支限界法(2)
旅行商问题 问题分析 带权邻接矩阵g[][]如下所示,空表示为无穷,即没有路径。 15 30 5 15 6 12 30 6 3 5 12 3 算法设计 可以使用优先队列分支限界法,加快搜索速度。 设置优先级:当前已走过的城市所有的路径长度c…
算法笔记之分支限界法(1)
广度优先 广度优先搜索,其实就是层次遍历,程序采用队列来实现。 算法思想 从根开始,常以BF或以最小耗费(即最大收益)优先的方式搜索问题的解空间树。首先将根结点加入活结点表,接着从活结点表中取出根结点,使其成为当前扩展结点,一次性生成其所有…
算法笔记之回溯法(3)
最优加工顺序 问题描述 现在有3个机器零件{J1,J2,J3},在第一台机器上的加工时间分别为2、5、4,在第二台机器上的加工时间分别为3、1、6.如何安排零件加工顺序,使第一个零件从机器1上加工开始到最后一个零件在机器2上加工完成,所需的…