
算法
文章平均质量分 76
zpfnevergiveup
纸上得来终觉浅 绝知此事要躬行,永远不要停止成长
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PHP实现二分查找(Easy said than done)
二分查找思想大家都知道,但是今天我再纸上面写二分查找的时候,发现写不出来,大致逻辑可以写出来,但是上机运行就通不过了,说明还是没有真正理解二分查找,同时说明自己的基础太差了!多多练习手写代码吧,锻炼自己的思维能力<?php //while循环实现二分查找 function binarySearch($arr, $find) { $low = 0; $high = count原创 2017-08-25 17:52:40 · 558 阅读 · 0 评论 -
直接插入排序
直接插入排序:直接插入排序的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。代码如下:#include#include#include#define MAXSIZE 10#define OK 1#define TRUE 1#define FLASE 0typedef int Status; typedef struct原创 2017-06-04 11:38:35 · 271 阅读 · 0 评论 -
选择排序
选择排序:简单选择排序法就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1代码如下:#include#include#include#define MAXSIZE 10#define OK 1#define TRUE 1#define FLASE 0typedef int Status; typedef struct {原创 2017-06-04 10:35:12 · 267 阅读 · 0 评论 -
冒泡排序及其优化
#include#include#include#define MAXSIZE 10#define OK 1#define TRUE 1#define FLASE 0typedef int Status; typedef struct { int r[MAXSIZE+1]; //用于存储要排序数组,r[0]用作哨兵和临时变量 int length;原创 2017-06-04 09:10:16 · 571 阅读 · 0 评论 -
有序表查找
#include#define OK 1#define ERROR 0#define TRUE 1#define FLASE 0#define MAXSIZE 100typedef int Status;/* 顺序查找,a为数组,n为要查找的数组长度,key为要查找的关键字*/int Sequential_Search(int *a,int n,int key){原创 2017-06-02 18:10:35 · 980 阅读 · 0 评论 -
C++实现快速排序
#include using namespace std;int a[1005];int temp;int Partition(int a[],int low,int high){ int i=low,j=high,pivot=a[low]; //用序列的第一个元素作为基准元素 while(i<j){ //从序列的两端交替向中间扫描,直至原创 2017-03-19 09:15:11 · 387 阅读 · 2 评论 -
NYOJ 会场安排问题
会场安排问题时间限制:3000 ms | 内存限制:65535 KB难度:4描述学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动,每个时间最多安排一个活动。现在小刘有一些活动计划的时间表,他想尽可能的安排更多的活动,请问他该如何安排。输入第一行是一个整型数m(m每组原创 2017-02-28 21:07:01 · 580 阅读 · 0 评论 -
NYOJ-96 n-1位数
n-1位数时间限制:3000 ms | 内存限制:65535 KB难度:1描述已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数。输入第一行为M,表示测试数据组数。接下来M行,每行包含一个测试数据。输出输出M行,每行为对应行的n-1位数(忽略前缀0)。如果除了最高位外,其余位都原创 2016-04-19 10:15:53 · 464 阅读 · 0 评论 -
NYOJ-48小明的调查作业
小明的调查作业时间限制:1000 ms | 内存限制:65535 KB难度:1描述小明的老师布置了一份调查作业,小明想在学校中请一些同学一起做一项问卷调查,聪明的小明为了实验的客观性,想利用自己的计算机知识帮助自己。他先用计算机生成了N个1到1000之间的随机整数(0<N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的原创 2016-04-17 15:30:59 · 3431 阅读 · 0 评论 -
NYOJ-54小明的存钱计划
小明的存钱计划时间限制:3000 ms | 内存限制:65535 KB难度:2描述小明的零花钱一直都是自己管理。每个月的月初妈妈给小明300元钱,小明会预算这个月的花销,并且总能做到实际花销和预算的相同。 为了让小明学习如何储蓄,妈妈提出,小明可以随时把整百的钱存在她那里,到了年末她会加上20%还给小明。因此小明制定了一个储蓄计划:每个月的月初,在得原创 2016-04-17 11:29:25 · 533 阅读 · 0 评论 -
NYOJ-51 管闲事的小明
管闲事的小明时间限制:4000 ms | 内存限制:65535 KB难度:2描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。 由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示原创 2016-04-17 08:35:43 · 12287 阅读 · 0 评论 -
NYOJ-106背包问题
背包问题时间限制:3000 ms | 内存限制:65535 KB难度:3描述现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使背包里的物品的价值总和最大。输入第一行输入一个正整数n(1随后有n测试原创 2016-04-16 11:05:25 · 454 阅读 · 0 评论 -
分析问题要全面,不能够全面的分析为题时,有可能陷入误区
小学生算术时间限制:3000 ms | 内存限制:65535 KB难度:1描述很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。输入输入两个正整数m,n.(m,n,都是三位数)输出输出m,n,相加时需要进位多少次。样例输入原创 2015-05-25 09:19:00 · 589 阅读 · 0 评论 -
变量放的位置,有时细节决定成败,不要被样例迷惑,要思考全面
另一种阶乘问题时间限制:3000 ms | 内存限制:65535 KB难度:1描述大家都知道阶乘这个概念,举个简单的例子:5!=1*2*3*4*5.现在我们引入一种新的阶乘概念,将原来的每个数相乘变为i不大于n的所有奇数相乘例如:5!!=1*3*5.现在明白现在这种阶乘的意思了吧!现在你的任务是求出1!!+2!!......+n!!的正确值(n原创 2015-05-24 10:05:17 · 415 阅读 · 0 评论 -
获取字符串中最长的连续数字字符串或最长的非数字字符串
主要思路: 分析的时候可以用来两个指针来进行分析解决,首指针指向头部,如果当前位置为数字的话,第二个指针从当前位置下一个位置开始寻找,如果是数字记录下来,如果不是数字,把该位置的下标+1也就是下一个位置作为下一次寻找的起始位置,继续需找,如果长度大于当前最长长度,进行替换,否则继续寻找获取字符串中最长的数字字符串<?php $str = 'abcd12345ed125ss123原创 2017-10-16 16:10:48 · 1112 阅读 · 0 评论