
数据结构与算法
文章平均质量分 83
wsqyouth
鹅厂码农 公众号:泡泡思考笔记
展开
-
mysql基本操作
记录下常用的命令,方便查询。参考:https://www.runoob.com/mysql/mysql-create-tables.htmlhttps://paiza.io/projects/jipzdTsd3DyS9rbjCs1eoQ?language=mysql (在线编译)一、库操作#连接库mysql -u root -p #创建create database 数据库...原创 2019-09-14 16:10:32 · 226 阅读 · 0 评论 -
常用代码记录
参考网络众多资料,记录下常用的功能。一、IP合法性判断#include<iostream>#include<string>#include<vector>#include<iterator&amp原创 2018-09-15 23:04:27 · 269 阅读 · 0 评论 -
LRU catch
最近发现一道特别考验综合素质的题,LRU Catch,记录之。 参考:LRU一、list中的splice函数list::splice实现list拼接的功能。将源list的内容部分或全部元素删除,拼插入到目的list。函数有以下三种声明:void splice ( iterator position, list<T,Allocator>& x )...原创 2018-09-05 16:46:23 · 595 阅读 · 0 评论 -
最长公共子序列(LCS)
此文全文参考自:https://blog.youkuaiyun.com/dq_dm/article/details/45043689,特此感谢! 然后自己参考了:http://www.ahathinking.com/archives/115.html 和July的ppt讲义《十分钟搞定LCS》,为表示版权,特地留下July的log:)。一、最长公共子序列定义最长公共子序列,即Longe...原创 2018-09-03 17:22:58 · 4841 阅读 · 2 评论 -
二分搜索法学习
文章参考:https://blog.youkuaiyun.com/yusiguyuan/article/details/48052659 https://www.cnblogs.com/grandyang/p/6854825.html一、二分搜索法在一个有序的数组中,查找一个数,可以使用二分查找。 比如代码://二分搜索法int binary_search(int* arra...原创 2018-09-02 20:16:52 · 279 阅读 · 0 评论 -
C++大数问题
此文参考自:https://blog.youkuaiyun.com/hacker00011000/article/details/51298294 他的快排也很好:三种快排四种优化 这里暂时有大数加法、大数减法、大数阶乘,其他的以后补上: https://blog.youkuaiyun.com/y990041769/article/details/20116995大数相加 1、从结尾开...转载 2018-09-02 16:20:01 · 3188 阅读 · 0 评论 -
单向链表的排序-插入、归并与快排
好久没有做链表相关的题了,在八月的最后一天,实现单向链表的排序,以此纪念。 参考:牛客网 https://blog.youkuaiyun.com/bxw1992/article/details/77155152 https://www.cnblogs.com/TenosDoIt/p/3666585.html一、单向链表的插入排序题目:Sort a linked list ...原创 2018-08-31 21:25:17 · 1252 阅读 · 0 评论 -
最长递增子序列LIS和最长公共子序列LCS
本文参考了《编程之美》、LeetCode中文题解以及博客 https://blog.youkuaiyun.com/George__Yu/article/details/75896330 (LIS) https://blog.youkuaiyun.com/v_july_v/article/details/6695482 (LCS) https://blog.youkuaiyun.com/SongBai199...原创 2018-08-31 11:11:04 · 383 阅读 · 0 评论 -
面试版-八大排序算法
整理一份适合面试的八大排序算法,参考: https://blog.youkuaiyun.com/csdn_baotai/article/details/80293679 https://blog.youkuaiyun.com/ysunflower/article/details/80425788 https://blog.youkuaiyun.com/prstaxy/article/details/81663...原创 2018-08-23 22:30:25 · 2615 阅读 · 2 评论 -
KMP算法学习
本文参考文章: 七月算法讲解 KMP入门讲解 KMP算法的Next数组详解 如何手动计算 C++版本框架其中,KMP入门讲解中使用画图的方法给大家一个很好的入门,七月算法的C语言版本讲的非常好,此文完全参考他的思路,这里仅仅摘抄记录几个非常重要的知识点。特此感谢!KMP算法要解决的问题就是在字符串(也叫主串)中的模式(pattern)定位问题。说简单点...原创 2018-07-13 22:52:42 · 266 阅读 · 0 评论 -
旋转数组的最小数字
参考《剑指offer》和牛客网思路 https://www.nowcoder.com/questionTerminal/9f3231a991af4f55b95579b44b7a01ba https://blog.youkuaiyun.com/u012371712/article/details/79683390面试题:旋转数组的最小数字把一个数组的最开始的若干个元素搬到数组的末尾,...原创 2018-04-12 16:04:56 · 159 阅读 · 0 评论 -
基于Partition函数实现快排、超过一半数字、最小K个数
本文参考了《算法导论》及如下博客: http://blog.jobbole.com/105219/ https://blog.youkuaiyun.com/AA2519556/article/details/77884962 https://www.cnblogs.com/zuilehongdou/p/6197716.html http://haoyuanliu.github.i...原创 2018-03-29 21:49:34 · 8255 阅读 · 0 评论 -
链表的基本操作
由于链表在创建和删除时需要考虑头节点,这里使用二级指针的办法来解决。其他诸如查找,打印可以使用一级指针传参即可。插入或者删除操作有时会修改实参的指针。比如在这里,当我们往一个空链表插入一个节点时,新插入的节点就是链表的头指针。由于此时会改动头指针,因此必须把pHead参数设为指向指针的指针,否则出了这个函数pHead仍然是一个空指针。 为了强化学习,这里代码全部使用C语言实现:#...原创 2018-03-20 17:36:17 · 239 阅读 · 0 评论 -
使用指针操作链表
使用一级指针操作链表时,需要区分头结点和其他节点。特别是在创建、注销、删除时特别考虑二者的不同。Linus本人非常不推荐这种写法,这里参考以下博客重新整理而成。 http://blog.youkuaiyun.com/jasonchen_gbd/article/details/45276629 https://coolshell.cn/articles/8990.html http://...原创 2018-03-20 12:20:05 · 2354 阅读 · 2 评论 -
带头结点的线性链表的基本操作
持续了好久,终于有了这篇博客,链表的操作需要借助图像模型进行反复学习,这里尽可能的整理并记录下自己的思考,以备后面复习,和大家分享。原创 2017-11-15 17:39:31 · 3393 阅读 · 0 评论 -
单链表的基本操作(头结点)
本篇博客主要是对线性链表的基本实现,因此无法摆脱链表的基本缺点,比如无法快速定位前驱、无法快速确定元素个数等等。当然优点是能够快速对链表进行学习。本篇博客将网络上对单链表的各种操作进行实现,方便大家学习,如有错误,不吝指正!原创 2017-11-06 20:49:15 · 14670 阅读 · 0 评论 -
线性表中顺序表的合并
对两个顺序表进行合并,算法的复杂度为O(La.size+Lb.size)。已知顺序线性表La和Lb的元素按值非递减排列原创 2017-11-02 10:12:38 · 2128 阅读 · 0 评论 -
线性表的顺序表示及实现
经过一个星期的学习,主要学习鲍春山的视频教程和严蔚敏的数据结构,将线性表的学习记录下来,和大家分享。如有错误,不吝指正! —-2017.10原创 2017-10-31 22:54:31 · 1261 阅读 · 0 评论 -
八大排序算法
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。转载 2017-10-30 17:04:05 · 321 阅读 · 0 评论 -
给定一个字符串,按单词将该字符串逆序
在学习过程中,遇到这样一个功能:请输入一个字符串,将其逆序排列。如输入"hello world",输出为"world hello"。 借鉴了网上的思路:思路: 先按单词逆序,再对整个句子逆序。 "hello world" ==> "olleh dlrow" ==> "world hello" 那么,需要做两部分功能:第一,给定单词的首地址原创 2016-09-27 17:41:06 · 9438 阅读 · 0 评论 -
字符串反转(C语言)
功能:字符串反转需要考虑当下标为0时是否跳出循环,所以此处算法的核心在于length>=0和--length(考虑最大下标为lentht-1)该算法的缺点是:1,输出数组长度应该有输入数组确定2,数组最好为动态内存分配3,最好封装为函数,但是函数命名不能为strrev,该函数名为VS的内置函数原创 2015-12-12 16:21:51 · 6970 阅读 · 2 评论 -
数组循环移位算法
题记:不要多想,好好敲代码,看书,就这样,加油。昨天在看博客的时候,发现一个有意思的算法,但是原博客代码不全,自己就在它的基础上,按自己的理解把循环左移、循环右移的算法写出来了优点是动态建立数字,较好原博客:http://blog.youkuaiyun.com/ns_code/article/details/8846643该种算法可能对循环队列缓冲移位有一定的帮助,特和大家分享:循环左移算原创 2015-12-12 15:31:57 · 7109 阅读 · 0 评论 -
C语言批量数据到动态二维数组
上一篇文章将文件读取放到静态创建的二维数组中,但是结合网络上感觉到今天的DT时代,这样批量大量读取一个上百行的数据,分配的内存是否可能因为大量的数据而产生溢出呢,最近一直研究里malloc函数,通过它来动态建立所需的二维数组,因此,通过文件操作和动态创建二维数组结合起来,将大量的数据动态的放入矩阵中,不知道这样的思想是否正确,下午把程序运行出来了,将程序贴上来,欢迎大家一起探讨:对于有规律的大数据原创 2015-07-22 17:31:44 · 2128 阅读 · 0 评论 -
C语言读取文件大量数据到数组
针对.txt文档的大量有规律数据,譬如100行8列的数据将其读取到二维数组(矩阵)中,留作之后的数据处理。改程序通过宏定义的方法来确定将要读取程序的行数和列数,将数据读取到二维数组data[100][8]中。同时加入一个测试函数read(),功能是可以获取txt文档大量数据的行数,本项目中待定使用。程序如下:#include#include/*为了以后特定行数的读取,采原创 2015-07-22 16:45:28 · 17769 阅读 · 2 评论 -
自己实现的atof()和atoi()代码
本文全文摘自:http://www.cppblog.com/cxiaojia/archive/2012/02/24/166436.html,非常感谢自己在VC环境下,编译,调试通过,将结果显示给大家:#include "stdafx.h"//函数名:myatof//功能:把字符串转化成double浮点型//名字来源:my array to floating转载 2015-07-21 21:54:34 · 1943 阅读 · 0 评论 -
不使用 +-×÷ 运算符来实现 加减乘除 四项运算
本文全部转自:http://www.cppblog.com/qingbizhu/archive/2012/03/30/168148.html,谢谢啊最近,在看《剑指Offer——名企面试官精讲典型编程题》一书,当看到“面试题47:不用加减乘除做加法”时,经过一分钟左右思考后,得出了思路,跟书上一对照,基本一致,呵呵O(∩_∩)O~。于是,随即又开始思考:加法是实现了,那么减法、乘法还有转载 2015-05-15 10:48:54 · 3270 阅读 · 0 评论 -
VC环境下字符串转整型最终版
剑指Offer 字符串转化为整型今天闲来无事,就搜了下这方面的知识,结果发现,这个题就是一个经典的算法题,在剑指Offer里已经详细分析了直接上代码了,运行可靠,如果大家继续深入理解的话,参考这本书:《剑指Offer——名企面试官精讲典型编程题》博主:http://blog.youkuaiyun.com/cadcisdhht/article/details/36875535--------原创 2015-05-15 10:34:43 · 1108 阅读 · 0 评论 -
关于字符串转化为数字的深度优化两种算法
最近在做项目,在实际操作中发现自己在VC环境下写的字符串转化为整型的函数还是太过理想化了,或者说只能在window平台下软件环境中运行,重新给大家发两种函数方法:第一个,就是理想化的函数,在VC环境下充分利用指针的优越性,对字符串转化为整型(同时也回答了某位网友的答案吖),实验检验通过:#include #include int rayatoi(char *str){ c原创 2015-05-09 09:37:32 · 2191 阅读 · 1 评论 -
vb学习笔记
为了下一个项目用的:Form的Picture属性:图片背景Label的alignment属性:内容居右对于布尔变量的交互使用if Not firstflag Then If Not res Then dataout.Caption = "" '当点击第一个数字时 dataout.Capt原创 2015-05-01 13:20:52 · 895 阅读 · 0 评论 -
VB计算器项目算法结构分析
关于VB计算器,里面涉及的各种逻辑比做菜单和播放器麻烦多了,简单的计算器漏洞太多了,还是大家一起学习下,谢谢啦原创 2015-05-01 13:07:25 · 1572 阅读 · 0 评论 -
8种常见的排序算法
下面要讲到的8种排序都属于内部排序,既在内存中完成,主要从理论原理方面来分析的。 插入排序 ①直接插入排序例:六个数12 15 9 20 6 31 24 用直接插入排序,如下图:思路:第一步:从给出的六个数中,随便拿出一个数,比如12,形成一个有序的数据序列(一个数当然是有序的数据序列了,不看12之外的数,就当其他的数不存在);第二步:从剩转载 2014-12-18 14:29:33 · 810 阅读 · 0 评论 -
经典排序算法设计与分析(插入排序、冒泡排序、选择排序、shell排序、快速排序、堆排序、分配排序、基数排序、桶排序、归并排序)
本文章转自高手:http://blog.youkuaiyun.com/wanghao109/article/details/15506253测试用例:为了分析所有的排序情况,给出一个模板程序用于测试,通过改写mySort函数来实现不同的排序算法。测试环境为vc++6.0。可以通过改变SIZE的大小来减少或增长排序所需的时间。另外测试时间还包括函数调用时间,存在一定的误差。[cp转载 2014-12-15 04:05:24 · 1977 阅读 · 0 评论 -
操作系统虚拟内存中的四种典型页替换算法(OPT,LRU,FIFO,Clock)
页面置换:在地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断(page fault)。当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。 典型的置换算法有四种,如下所示: OPT:最佳替换算法(optional replacement)。替换下次访问距当前时间最长的页。opt算法需要知道操作系统将来的事件,显然不可转载 2014-12-15 04:02:13 · 1455 阅读 · 0 评论 -
操作系统中磁盘调度算法(FIFO,SSTF,SCAN,C-SCAN)
FIFO:先进先出的调度策略,这个策略具有公平的优点,因为每个请求都会得到处理,并且是按照接收到的顺序进行处理SSTF:选择使磁头从当前位置开始移动最少的磁盘I/O请求,所以SSTF总是选择导致最小寻道时间的请求SCAN:SCAN要求磁头仅仅沿一个方向移动,并在途中满足所有未完成的请求,知道它到达这个方向上的最后一个磁道,或者在这个方向上没有其他请求为止C-SCAN:把扫描限定在一个方转载 2014-12-15 04:00:35 · 5609 阅读 · 1 评论 -
操作系统进程调度算法图解(FCFS、轮转、SPN、SRT、HRRN、反馈)
FCFS: 先来先服务,也可以称为先进先出轮转: 以一个周期性间隔产生时钟中断,此时当前正在运行的进程被置于就绪队列,基于FCFS选择下一个就绪进程 运行。SPN:最短进程优先,下一次选择所需处理时间最短的进程SRT:最短剩余时间优先,总是选择预期剩余时间最短的进程HRRN:最高响应比优先,R=(w+s)/s,其中R表示响应比,w表示已经等待的时间,s表示期转载 2014-12-15 03:57:01 · 12462 阅读 · 0 评论