自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 算法导论之最大子数组问题

例如我们在求解下面的最大子数组时13 -3 -25 20 -3 -16 -23 18 20 -7 12 -5 -22 15 -4 7   最简单的做法就是暴力求解,但是时间复杂度为O(n^2);//// main.cpp// 算法导论//// Created by SJCH...

2019-02-02 10:11:18 347

原创 算法导论之二分查找

二分查找的前提是要进行查找的序列必须是有序的,这里我们以升序为例。1 2 3 4 5 6 7 8 9   start = 0, end = 8, mid = (0 + 8) / 2;比如我们查找val = 2;首先我们比较A[mid]和val, 如果val大,那么我们递归右边,否则我们递归左边。#include <...

2019-02-01 15:20:37 352

原创 算法导论之归并排序

归并排序的思想就是分治法;分治法:为了解决一个给定的问题,算法一次或多次递归地调用其自身以解决紧密相关的若干子问题。分治模式在每层递归时都有三个步骤:一,分解原问题为若干子问题。二,解决这些子问题,递归求解各子问题。三,合并这些子问题的解成原问题的解。了解了分治法之后,我们再来看下归并排序:1,分解:分解待排序的n个元素的序列各具n/2个元素的两个子序列。2,解决:...

2019-02-01 11:57:49 364

原创 算法导论之插入排序

比如我们对下面的进行排序,排序过程如下5 2 4 6 1 3   2 5 4 6 1 3   2 4 5 6 1 3   --------------------------------------------每次进行比较2位,然后插到合适的位置1 2 ...

2019-02-01 11:17:53 221

原创 P1553 数字反转(升级版)

题目描述给定一个数,请将该数各个位上数字反转得到一个新数。这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数。整数反转是将所有数位对调;小数反转是把整数部分的数反转,再将小数部分的数反转,不交换整数部分与小数部分;分数反转是把分母的数反转,再把分子的数反转,不交换分子与分母;百分数的分子一定是整数,百分数只改变数字部分。整数新数也应满足整数的常见形式,即除非给...

2019-01-25 13:45:16 678

原创 P1980 计数问题

题目描述试计算在区间 11 到 nn的所有整数中,数字x(0≤x≤9)x(0≤x≤9)共出现了多少次?例如,在 11到1111中,即在 1,2,3,4,5,6,7,8,9,10,111,2,3,4,5,6,7,8,9,10,11 中,数字 11出现了 44 次。输入输出格式输入格式: 2个整数n,x,之间用一个空格隔开。 输出格式: 1个整数,表示x出现的次数。...

2019-01-21 21:40:05 247

原创 大数加法

对于一些比long int还大的数,我们应该如何计算加法呢?可以想到的是可以转换为字符串去计算。思路:1,逆序输入2,加法1)主要就是考虑进位。比如我们计算987654321 + 5678对于高位不足的我们补0最后结果在逆序输出就行了1 2 3 4 5 6 7 8 9 8 7 6 5 0...

2018-12-24 13:08:26 173

原创 堆(Heap)的实现

什么是堆?优先队列(Opriority Queue)特殊的“队列”,取出元素的顺序是依照元素的优先权(关键字)大小,而不是元素进入队列的先后顺序。堆有两大特性:1,结构性:是一颗完全二叉树。2, 有序性:每个叶子结点到根结点都是有序的,如果是升序,那么就是最大堆,否则为最小堆。这些是堆:下面的不是堆: 下面让我们来具体的来看堆是如何建立的比如给定...

2018-12-01 11:04:21 371

原创 快速排序

快速排序又冒泡排序改进而来,快速排序方法中的一次交换可以消除多个逆序。(1)时间复杂度例如对下面的元素进行快速排序0 1 2 3 4 5 6 7   49 38 65 97 76 13 27 low = 1, high = L.length = 7 ;我们把第一个出现的数放到0这个哨...

2018-11-28 23:08:30 150

原创 排序

#include <stdio.h>typedef int ElementType;int P;int N = 6;ElementType A[] = {34,8,64,51,32,21};void Buddle_Sort( ElementType A[], int N ){ int t,i; int flag; for ( P = N -1; P >= ...

2018-11-27 14:09:31 154

原创 02-线性结构2 一元多项式的乘法与加法运算

02-线性结构2 一元多项式的乘法与加法运算 (20 分)设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。...

2018-11-22 22:21:17 184

原创 KMP算法,oj2087,Oulipo

对于一些简单的查找我们可以用c库函数strstr #include <stdio.h>#include <string.h>typedef char* Position;#define NotFound NULLint main(){ char string[] = "This is a simple example."; char patter...

2018-11-20 17:12:40 386

原创 C++头文件algorithm的一些用法

转载自https://blog.csdn.net/liuweiyuxiang/article/details/51865991<algorithm>是c++特有的STL模板的算法头文件 包含了一些特定的算法函数 包括sort(),stable_sort(),partical_sort(),nth_element()等常用的算法函数 一、巡防算法for_each(容器起始地址,容...

2018-11-20 16:28:45 2489

原创 二维数组求鞍点

题目内容:给定一个n*n矩阵A。矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数。一个矩阵A也可能没有鞍点。你的任务是找出A的鞍点。输入格式:输入的第1行是一个正整数n, (1<=n<=100),然后有n行,每一行有n个整数,同一行上两个整数之间有一个或多个空格。 输出格式:对输入的矩阵,如果找到鞍点,就输出其下标。下标...

2018-10-30 22:22:54 10689 3

原创 二分查找和排序

二分查找,主要是针对排序问题进行查找我们先算出数组的长度len = sizeof(a) / sizeof(a[0])我们先设置int left = 0;int right = Len - 1;int mid = (left + right ) / 2;如果K大于mid,那么 left = mid + 1;小于 right = mid -1;#include &...

2018-10-28 13:45:17 656

原创 树的一些基本用法

我们用先序创建树,算出它的先序,中序和后序,然后计算他的结点和叶子结点最后计算树的深度。 目录                                                                       树的基本用法先序 中序 后序 先序遍历就是先遍历根结点再遍历左右孩子,所以这课树的先序遍历就是ABC##D#E#G##F###...

2018-10-27 15:37:05 344 2

原创 最大子列和问题

01-复杂度1 最大子列和问题 (20 分)给定K个整数组成的序列{ N​1​​, N​2​​, ..., N​K​​ },“连续子列”被定义为{ N​i​​, N​i+1​​, ..., N​j​​},其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20...

2018-10-22 13:57:21 191

原创 用顺序栈实现十进制转二进制(c语言)

#include <stdio.h>#include <stdlib.h>#define M 100typedef int ElemType;typedef struct{ ElemType data[M]; int top;}Stack;//初始化栈void InitStack(Stack *s){ s->top = -1;}int...

2018-10-16 17:17:26 18548 1

原创 十进制转R进制链表(C语言)

#include <stdio.h>#include <stdlib.h>typedef int ElemType;typedef struct Linknode{ ElemType data; struct Linknode *next;}LiStack;//初始化栈void InitStack(LiStack* &s){ ...

2018-10-13 15:58:38 1211

原创 用顺序表实现十进制转R进制(C语言)

#include <stdio.h>#include <stdlib.h>#define M 100typedef int ElemType;typedef struct { ElemType data[M]; int top;}Stack;//初始化栈void InitStack(Stack *s){ s->top = -1;}in...

2018-10-13 15:33:45 1224

原创 c语言实现四则远算

#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ int a,b; char op; scanf("%d%c%d",&a,&op,&b); switch(op) { case '-':printf("%d\n",a-b);bre

2018-10-13 11:02:20 506

原创 单链表的简单实现,插入和删除

效果如上首先我们先定义一个结构typedef struct Link{ int val;//数据域 struct Link*next;//定义一个next指针}Link;//别名第二步,我们创建顺序表刚开始时,head和pre都指向头指针,创建一个tmp指针赋值x之后,tmp指针指向NULL,pre->next = tmp,这就把链表链接起来了。stru...

2018-10-04 15:59:05 1344

原创 十进制转二进制(C语言)

算法分析:在实现模2取余后需要逆序输出,这个地方通过不断乘以10,不需要再通过数组或者逆序函数来实现。#include <stdio.h>int Decimal(int n){ int result=0,k=1; int i; while(n){ i=n%2; result = k*i + result; k = k*10; n = n/2; } ...

2018-10-02 16:11:38 2939

原创 用递归和非递归实现斐波那契数列(C语言)

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现...

2018-10-02 15:45:37 10003

原创 动态数组的实现

动态数组的实现//动态数组的实现//动态数组的创建与使用#include <stdio.h>#include <stdlib.h>int main(){ int *array =0,num,i; printf("Please input the number of element:"); scanf("%d",&num); //申请动态...

2018-10-02 15:08:39 273

原创 用递归法和非递归法实现n的阶乘

用递归法和非递归法实现n的阶乘#include <stdio.h>int fac(int n) //递归{ if(n<0) { printf("n<0,data error!\n"); } else if(n==0 || n==1) return 1; else { return n*fac(n-1); } return 0;}in...

2018-10-02 15:05:02 859

kmp算法演示

kmp算法求Next值演示,可以自己多研究一下,上面详细的讲解了KMP算法求Next值的具体方法

2018-11-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除