
数据结构与算法
文章平均质量分 79
wangbowj123
炼丹中。
展开
-
关于线性表的线性表的实现(顺序结构)
学习了数据结构后对线性表有了更好的了解,所谓线性表有两种实现方法,一种是用顺序结构,一种是用链式结构。具体说来就是用动态数组与链表的方式来实现。这便是数据结构的两种储存方式,顺序存储结构与链式存储结构,同时也是数据结构研究的存储结构的具体体现,因此线性表的实现对于初步学习数据结构的我们有着重要的意义。这篇博客用的是动态数组实现线性表。利用了c++里面的关键词new 进行内存动态分配原创 2017-03-01 18:37:53 · 3936 阅读 · 0 评论 -
python——三道贪心算法例题
1.找零钱问题:假设只有 1 分、 2 分、五分、 1 角、二角、 五角、 1元的硬币。在超市结账 时,如果 需要找零钱, 收银员希望将最少的硬币数找给顾客。那么,给定 需要找的零钱数目,如何求得最少的硬币数呢?2.求最大子数组之和问题:给定一个整数数组(数组元素有负有正),求其连续子数组之和的最大值。3.汽车加油站问题原创 2017-10-24 21:44:39 · 15733 阅读 · 10 评论 -
关于快速寻找素数的方法
利用素数筛选法进行素数的快速查找。原理很简单,素数一定是奇数,素数的倍数一定不是素数。思路如下:预定义N表示10000,即表示查找10000以内的素数,首先定义数组prime[]对N以内的数进行标记,奇数存为1,偶数存为0,最终实现结果为素数的prime值为1,因此将prime[2]赋值为1(2是素数)。之后利用for循环,对N以内的奇数进行遍历(注意for循环的条件控制),for里用if判断是否为素数(奇数),若是,执行内部嵌套的for循环判断该奇数是否为素数,若是则标记为1,若不是则prime置为原创 2017-02-21 14:27:07 · 12031 阅读 · 4 评论 -
智能版石头剪刀布——c++实现
利用c++实现了相对智能一点的石头剪刀布,方法是为计算机设置偏好,有第一偏好、第二偏好,第三偏好。同时计算机选择的时候会以百分之50的概率选择第一偏好,以百分之40的概率选择第二偏好,百分之10的概率选择第三偏好。为了更加狡猾,设置全局变量记录运行局数,每隔三局(可以自行设定)分析用户的偏好,从而改变自身的偏好,可以使得计算机更为人性化,完成简单的人机交互。这也是c++老师曾教给我们的,在原创 2017-08-01 14:12:37 · 3546 阅读 · 0 评论 -
八皇后问题——用Python解决
八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n1×n1,而皇后个数也变成n2。而且仅当 n2 = 1 或 n1 ≥ 3 时问题有解。这是一个典型的回溯算法,我们可以将问题进行分解:原创 2017-08-06 20:30:58 · 2652 阅读 · 0 评论 -
求单链表的最大值与原地逆转
数据结构链表一章已学习完毕,因此编了一个程序用以实现链式表的构建,插入,查找,求最大值,以及原地逆转。除了求最大值与原地逆转之外都是常规操作,不再赘述,着重分析最大值与逆转的算法。一、最大值的求解:通过max函数实现,定义结构体指针p指向l的首元节点,max初值为p->data,通过if判断是否有更大的数,将更大的数赋值给max,同时p指向下一个节点,由此求出最大的数。代码如下:voi原创 2017-03-13 18:14:22 · 8590 阅读 · 0 评论 -
字符串分割c++
1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例:转载 2017-03-11 08:24:48 · 563 阅读 · 0 评论 -
关于寻找素因数的三种方法
质因数(素因数或质因子)在数论里是指能整除给定正整数的质数。除了1以外,两个没有其他共同质因子的正整数称为互质。因为1没有质因子,1与任何正整数(包括1本身)都是互质。正整数的因数分解可将正整数表示为一连串的质因子相乘,质因子如重复可以指数表示。根据算术基本定理,任何正整数皆有独一无二的质因子分解式。每个合数都可以写成几个质数(也可称为素数)相乘的形式,这几个质数就都叫做这个合数的质因数。原创 2017-03-01 19:23:01 · 4351 阅读 · 0 评论 -
线性表的链式表示
线性表的链式表示。主函数的步骤包括,输入线性表数据,对链表的删除,插入。利用指针进行对链表的访问。原创 2017-03-01 18:51:19 · 364 阅读 · 0 评论 -
回溯法:最小重量机器设计问题(python解决)
问题描述: 最小重量机器设计问题:设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。设 w[i][j] 是从供应商j处购得的部件 i 的重量, c[i][j]是相应的价格。试设计一个算法,给出总价格不超过 p 的最小重量机器设计。 利用回溯法求解问题,首先可以为该题的二维数组w、c赋初值,不妨令n=3,m=2、p=60。构造回溯法中的解空间树,大概如下: 根据回溯法的要求原创 2017-11-18 15:37:00 · 3491 阅读 · 0 评论