算法实现
文章平均质量分 93
扬帆起航,培养兴趣
guangod
有用的东西都是自己争取来的,担心,害怕,恐惧,往往会坐失良机
展开
-
从银行家算法看程序构建
算法原创 2022-09-08 23:19:54 · 220 阅读 · 0 评论 -
荷兰国旗问题
算法的意义:不在于你考虑大神们是怎么考虑到的方法,你为什么想不到。而是你在遇到相似的问题时候,能想起这种问题的解决方法。自己不是笨,他们当初遇到同样的问题时,也曾绞尽脑汁,只不过,他们更早的实践过了。 ...原创 2019-11-25 14:21:35 · 304 阅读 · 0 评论 -
又到算法时--之前的算法题反思
看着最后一次弄算法的时间是7月份,而今天差不多已经快12月份了。没有理由,就是一个字“懒”,早上说好的七点前起床,但每次都托到7点后,早上的学习时间基本上从天冷了就没有了。正如广播里所说“人生不是赛场,梦想不容退场”,落寞时,曾记否自己最初的想法呢?查缺补漏:master公式,主要是针对分治策略详见《10-14软考考点之如何估算一个算法的时间复杂度和空间复杂度>中公式法,但并没有给出具体...原创 2019-11-25 11:26:20 · 160 阅读 · 0 评论 -
用栈实现队列操作及反向
逻辑上其实还是挺简单的无非就是两个栈或队列相互倒数据。/** * 〈一句话功能简述〉<br> * 〈用两个队列实现栈〉 * * @author guang * @create 2019/7/7 * @since 1.0.0 */public class ArrayandStack { public static class TwoQueuesStack ...原创 2019-07-07 16:42:35 · 794 阅读 · 0 评论 -
固定数组的方式来实现栈和队列的操作
直接上代码:一些实现代码的感悟,虽不一定正确,但也代表自己的所思所想。/** * 〈一句话功能简述〉<br> * 〈用固定数组实现栈〉 * * @author Administrator * @create 2019/5/30 * @since 1.0.0 */public class ArrayStack { public static class Aa...原创 2019-06-01 08:00:47 · 251 阅读 · 0 评论 -
找出栈中的最小值时间复杂度为O(1)
import java.util.Stack;/** * 〈一句话功能简述〉<br> * 〈设计一个特殊栈,实现返回最小值push,pop,getmin时间复杂度都为O(1)〉 * * @author Administrator * @create 2019/6/2 * @since 1.0.0 */public class GetStackMin { p...原创 2019-06-02 12:48:24 · 729 阅读 · 0 评论 -
核心的排序算法
正如看JAVA从入门到精通一样,总有些常规和核心的,而前面的插入、选择、冒泡排序都是简单的排序方法,算不上实用排序.真正体现计算机优势的排序算法正是,归并,快速,堆排序.插入,选择、冒泡,时间复杂度都为O(n^2),空间复杂度都是O(1)。而归并、快速、堆排序时间复杂度都为O(N*logN) 空间复杂度,归并是O(N)快速是O( logN) 堆O(1)归并排序:/** * ...原创 2019-05-13 18:26:05 · 279 阅读 · 0 评论 -
简单的排序算法以备查验
虽然,同时进行着数据库,C#实战项目,但始终明白,尽管当前这些应用类的可能会占据白天的大部分时间,但要想在软件这一块有长足的进展, 算法与数据结构始终是不可忽略的存在.这个过程是一个长期的过程,也是一个不可轻易放弃的过程,不放弃,就是不放弃自己的爱好,不放弃自己.坚持学习,总有一天,会达到自己的目标.C、C++、C#、JAVA除去语法特性的东西,其实在算法这一块,应该是没有什么障碍的。偶有所得...原创 2019-04-23 22:42:42 · 374 阅读 · 0 评论 -
递归
作为计算机专业的人,说来真是有点惭愧,算法的三大结构都忘记了。递归,递推,同构。拾起来,做以后自己的产品,相信自己也有这个能力。写了个最简单的递归函数,以备以后查验吧。#include "stdafx.h"#include <stdio.h>#pragma warning(disable:4996)void printfN(int n){ if (n){ p...原创 2018-12-18 20:55:09 · 146 阅读 · 0 评论 -
数据结构与算法新解
看浙大的视频给我几点感受:1、其实,程序的很多操作和运算都是由基本的堆栈、队列这些线性表特性来实现的,并且,只有用它们才能理解计算机内部的演算过程。2、学计算机的根本其实就是抽象,不限于数学计算,也包括对操作或现实的理解。同样的,堆栈,队列等也都是源于现实的生活的抽象。3、感觉难,就是因为没有好的导师,仅从大家都知道的部分入手,显然是学不会的,而市面上大部分的书也都是这样的浅显的讲解,...原创 2018-11-28 23:02:47 · 170 阅读 · 0 评论 -
构建哈夫曼树和编码输出
c++代码实现:// MyTest.cpp : 定义控制台应用程序的入口点。/*哈夫曼构建思想是弄成一个结构体数组,结构体数据本身就具备了表的特征*/#include "stdafx.h"#include <algorithm>#include <cstring>#include <cstdlib>#include <iostrea...原创 2018-09-20 22:49:37 · 3134 阅读 · 0 评论 -
迪科斯特算法
C++代码实现:曾记否,去年搞了至少一个多月C++,现在看来,什么都没有学到.而算法从一个侧面来说可以达到学以致用的目的.既在找到了道路就要坚持下去,毕竟自己的年龄已经不允许自己再反复了./*Dijkstra算法,解决单源最短路径算法*/#include "stdafx.h"#include <iostream>#include <cstdio>/*cstdi...原创 2018-08-23 21:14:03 · 725 阅读 · 0 评论 -
安排会议问题
C++代码实现://安排会议问题,输入开始与结束时间,输出可以安排的最多的会议数//按结束时间从小到大排序,然后与开始时间不重叠#include "stdafx.h"#include <iostream>#include <algorithm>#pragma warning(disable:4996)using namespace std;struc...原创 2018-08-20 14:05:03 · 1738 阅读 · 0 评论 -
背包问题
C++代码实现://背包问题,输入最大载重量C,物体的重量,价值,并求出性价比//按性价比从大到小排序,物体的数量//输出运载的最大价值#include "stdafx.h"#include <iostream>#include <algorithm>using namespace std;#define MAX 100struct three{...原创 2018-08-19 17:42:23 · 168 阅读 · 0 评论 -
最优装载问题代码实现
C++代码实现://最优装载问题//输入物体的个数n及重量Wi,及能承受的最大装载重量C//输出最多的装载数量#include "stdafx.h"#include <iostream>#include <algorithm>//为了使用排序函数sort()从小到大排序#define NUM 100using namespace std;double...原创 2018-08-17 17:31:29 · 3433 阅读 · 3 评论 -
不是基于比较的排序-桶排
工程上用得不多,主要原因是得知道数据范围。最主要的意义在于,有利于发挥计算机的存储性。/** * 〈一句话功能简述〉<br> * 〈桶排序,基于计数的桶〉 * * @author Administrator * @create 2019/5/25 * @since 1.0.0 */public class BucketSort { public stati...原创 2019-05-29 22:36:12 · 632 阅读 · 0 评论 -
扩展 欧拉图算法
只是了解了怎么回事,待考试结束后,再仔细研究下吧。一、欧拉图: 无向图连通性的小问题——欧拉路问题,俗称一笔画问题。 给定一张无向图,若存在一条从节点S到节点T的路径,恰好不重不漏的经过每条边一次(可以重复经过图中的顶点),则称该路径为S到T的欧拉路。 特别的,若存在一条从节点S出发的路径,敲好不重不漏的经过每条边一次(可以重复经过图中的节点),最终回到起点S,则称该路径为欧拉...转载 2019-11-05 09:34:49 · 401 阅读 · 0 评论 -
从软考题,看计算机的经典数学应用-卡特兰数
2019年上半年选择题第58题有3个结点的二叉树有5种,可以推测出4个结点的二叉树有几种形态?这是个卡塔兰数应用,把没使用节点看做0 使用了节点看做1 最后看出现的形状定义1.卡特兰数是一种数列,以比利时的数学家欧仁·查理·卡塔兰命名。是组合数学中一个常出现在各种计数问题中出现的数列2.卡特兰数列:1, 1, 2, 5, 14, 42, 132, 429, 1430, ...原创 2019-10-10 22:34:55 · 740 阅读 · 0 评论 -
比较器 实现 自定义数据 类型的排序
什么是比较器?其实是利用 系统的比较函数 arrays.sort(T[],templements),这个接口函数,重新定义接口函数的比较函数而实现的.import java.util.Arrays;import java.util.Comparator;/** * 〈一句话功能简述〉<br> * 〈比较器〉 * * @author Administrator...原创 2019-05-16 14:53:22 · 450 阅读 · 0 评论