自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 八大排序之——快速排序(快排)及其优化

快速排序,是一个较为高效的不稳定排序算法,其排序效率在同为O(N*logN)的几种排序算法当中也较为高效,使用率可谓名列前茅,尽管它是一种不稳定的排序算法(排序的过程中相等的值的位置可能有所变化),但仍然十分受欢迎。其核心思想是选中一个基点,通过一次排序操作将整个序列划分为两个子序列,左子序列的值都比基点要小,右子序列的值都比基点要大,按照该方法又对两个子序列进行快排操作,不断地重复上面的操作,最后达到全部的序列都排序好,使整个序列排序为有序数列。其算法思想的本质也是分治策略,对数据分布越乱的序列排序效率越

2020-06-30 22:23:58 618

原创 八大排序之——归并排序

归并排序,是一个建立在归并操作基础上的一种排序算法, 该算法也是运用了分治策略的思想,通过不断地二等分子序列,将其排序至有序,再合并回序列里,最终达到排序的目的。归并排序是一个比较稳定的排序算法。其速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。其算法原理如下:1.申请一个与待排序序列大小相等的空间,用于临时存放排序结果。2.取待排序序列的中间为界,将划分出的两个子序列进行归并排序,反复二等分并进行归并排序3.将归并好的子序列合并存储至临时空间当中,并将存储好的结果

2020-06-30 13:25:54 217

原创 浅析二分查找法:这么好用的方法必须学会!

二分查找法,又称折半查找法,它是一种效率比较高的查找方法,适用于按顺序存储结构,且表中的元素是按关键字有序排序的线性表当中。时间复杂度为O(lg n)。在一定的情况下,二分查找法是特别高效的选择。二分查找法的核心思想是分治策略,在有序排序的线性表里,如果待查询的值小于中间的值的话,那么待查询的值绝对只可能在起始到中间的范围当中,同理如果大于中间的值都会话,就只可能在中间到末尾的范围里。通过每一次比较,我们可以不断缩小查询的范围,如果待查询的值在线性表当中存在的话,那么最后待查询的值会等于某一次缩小到的范围

2020-06-29 22:36:00 342

原创 剑指Offer系列(04):二维数组中的查找

题目是这样的:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。做这道题其实不难,首先我们先在题目中抓取关键字:行是递增顺序排序、列从上到下递增。看到递增与查找,不难联想到二分查找法(折半查找法)。而且从左到右和从上到下都是递增的话,那么查找目标如果小于第一行的第一个元素或者大于最后一行的最后一个元素的话,绝对可以说是查找不到的;同时对于行而言,如果查找目标比行当中的第一个元

2020-06-26 00:25:07 94

原创 探秘C++中的Const(一)Const在C语言与C++中的区别

这期博客我们来讲贯穿C++中的一个十分重要的修饰词:Const。一般我们知道:**Const修饰过的变量再也不能做为左值了,且值初始化完成后是不能被修改的。**那么这句话的真正意思你理解了吗?首先我们来看看C语言与C++中Const最本质的区别:Const的编译方式不同。在C语言中,Const修饰的变量是当做一个变量来编译生成指令的。怎么来理解这句话呢?就是说Const尽管修饰了一个变量,但这个变量的本质并不会变成一个 常量,无法修改,而是变成了一个叫常变量的东西。常变量可以不初始化,但赋值只有在初始化

2020-06-12 18:41:43 148

原创 Linux基础:创建进程方法fork()

在初步了解Linux系统的操作基础后我们不难发现,无论是怎么编译代码,怎么使用命令也好,进程都是由我们人工输入指令来创建的。那么实际程序运用中,也是得由后台管理人员不断人工创建进程吗?答案当然是否定的,以人工的速度来看,每条进程的创建至少也需要好几秒的操作时间,那么面向广大用户的系统软件还能正常运行吗?不难想出,一定有哪种方法使得正在运行的进程接到用户传来的信号后,自动就会创建新的进程,来处理用户传信号来想做的事情。而进程创建,正是使用了fork()方法。pid_t fork(void);fork(

2020-06-05 16:30:57 397

原创 C语言实现顺序循环队列

队列,也是一种十分常用的数据结构。顾名思义,队列和排队的队伍类似,都是从最后端进,呈队伍状,并由排到最前面的出去,由此可见,队列是一种先进先出(FIFO)的结构。顺序队列有头指针和尾指针分别指向队头和队尾,来推导出队列的使用情况。但其中顺序队列有个很常见的问题就是,当元素在一端进行插入,另一端进行删除时,当头部走到队列的队列总长MAX值-1时,就队满了,但此时队列中的确仍有空间尚未使用,这就是所谓的“假溢出现象”。要更有效地解决这种问题,就有了我们的顺序循环队列。顺序循环队列,顾名思义,就是把队头和

2020-06-03 20:26:39 1232

原创 C语言实现顺序栈

众所周知,栈在C/C++语言里面是一个十分重要的结构,像比较经典的函数调用栈,就是一个典型的栈结构,还有递归、中缀表达式转后缀表达式、后缀表达式求值、递归转换非递归等,都用到了栈。栈是先进后出的结构,其大致结构如下:下面是栈的结构设计:typedef int ElemType;#define STACK_INIT_SIZE 10#define STACKINCREMENT 5typedef struct Stack{ ElemType *base; int top; int stack

2020-05-29 16:00:02 324

原创 C语言实现带头结点单链表

废话不多说,直接上代码:先是.h文件,用来定义成员方法和成员变量:#pragma once#define TRUE 1#define FALSE 0 //C语言里没有bool 故用宏定义实现 typedef int ElemType; typedef union Data { ElemType val; int length; }Data; typedef str...

2020-04-29 21:15:22 894

原创 C语言实现定长顺序表

线性表的顺序表示指的是用一组地址连续的存储单元一次存储线性表的数据元素,其中顺序表中所有存储的数据元素都是从data的0号下标连续的。这里我们要实现的,便是定长顺序表。首先我们先定义顺序表的结构:struct SeqList{ ElemType data[SIZE]; Int length;};其中SIZE是我选择用宏,因为是定长顺序表,没必要创造一个新变量。我们要实现的基本...

2020-04-10 14:45:45 190

原创 浅析C++中的函数重载

来分析函数重载之前,我们先引用一个小问题:为什么C++支持函数重载,C语言不支持函数重载?答案很简单,因为C++代码产生函数符号的时候,是由函数名+参数列表类型组成的;而C代码产生函数符号的时候,符号由函数名决定。正是因为有了这样的情况,C++里就出现了“函数重载”这样一个情况。下面让我们看一个简单的例子,来了解函数重载。#include <iostream>using nam...

2020-03-26 16:41:00 116

原创 inline函数和普通函数的区别

inline函数和普通函数有什么区别?要更有深度的回答这个问题,我们先从inline函数的角度来进行剖析,下面先看一个简单的示范代码:#include <iostream>using namespace std;int sum(int x, int y){ return x + y;}int main(){ int a = 5; int b = 9; int ...

2020-03-25 22:40:28 1670 1

原创 进程中虚拟地址空间区域的划分

代码在编译连接完成后,都会产生一个放在磁盘上的可执行文件.exe,当我们运行exe文件时会把程序从磁盘上加载到内存当中(这里说的内存不是物理内存,而是虚拟内存)。那么进程中的虚拟地址空间又是怎么划分的呢?以x86体系下的32位linux环境下来看,linux系统会给当前进程分配一个2^32大小的一块空间,也就是4G大小的空间,当然如果是在64位下地址空间划分又是不同的。这里4G当中3G被分为用户...

2020-03-07 00:03:24 509

原创 简述new和malloc的区别

new和malloc都是动态分配内存的指令,它们的区别主要为以下五点:1.申请内存所在位置不同new从自由存储区上为对象动态分配内存空间malloc从堆上动态分配内存2.返回类型的安全性new内存分配成功时,返回对象类型的指针,安全Malloc成功时返回void*,需要强转3.分配内存失败时的结果不同new分配内存失败时,会抛出bac_alloc异常malloc内存分配失败时返回...

2020-02-18 15:35:06 1688

原创 C++下源文件变成可执行文件的过程

C/C++下的源文件想要运行,都是经过了汇编等一系列操作,从代码变为了机器语言。假设项目下有源文件a.cpp,其变成可执行文件经历了四个过程:1. 预编译:(1)将a.cpp中的#include递归(2)将a.cpp中的#define替换(3)删除#if和#endif(4)删除注释//和/**/(5)增加行号和文件标识(6)保留 #pragma2. 编译:(1)进行词法分析(2...

2020-02-18 15:30:08 821

原创 软文的简介

可能很多人都听过软文,但,什么是软文?软文是相对于硬性广告而言,由企业的市场策划人员或广告公司的文案人员来负责撰写的“文字广告”。与硬广告相比,软文之所以叫做软文,精妙之处就在于一个“软”字,好似绵里藏针,收而不露,克敌于无形。"等到你发现这是一篇软文的时候,你已经冷不盯的掉入了被精心设计过的“软文广告”陷阱。它追求的是一种春风化雨、润物无声的传播效果。如果说硬广告是外家的少林工夫;那么,软文则...

2019-12-06 15:53:24 229

原创 软性广告营销案例

上篇内容中我们提到了软文营销,那么软文究竟好在哪里呢?接下来让我们通过这个例子来看看。《寡妇的忏悔》我想我28岁以后就不会结婚了。因为1.83的高度会使手和腿不对,经常会妨碍我的前进。我穿着漂亮的衣服,从来没有其他女孩穿得那么漂亮。似乎没有一个护花者会骑着他的白马把我带走。然而,最后一个男人愿意和我一起生活。 莱特没有我们在16岁时梦寐以求的那种情人,而是一个经常困惑,害羞和愚蠢的人。他看...

2019-12-04 12:32:03 992

原创 病毒式营销简介

病毒式营销是一种常用的网络营销方法。不用于进行网站推广,品牌推广等。病毒式营销利用用户口碑传播的原理,在互联网上这种口碑传播更为方便,可以像病毒一样迅速蔓延,因此病毒式营销成为一种高效的信息传播方式,而且由于这种传播是用户之间自发进行的,因此几乎是不需要费用的网络营销手段。病毒式营销并非真的以传播病毒的方式开展营销,而是通过用户的口碑宣传网络,使信息像病毒一样传播和扩散,利用快速复制的方式传向数以...

2019-12-04 12:23:00 239

原创 网络广告投放流程

上篇博客里我们讲了网络广告的方法,这篇我们主要分析网络广告投放的流程:1.确定广告达到什么目标。一般电子商务的网站主要是为了销售额,资讯站或论坛都是为了做好注册量,还有的就是做品牌,就像肯德基,每天一款半价,在各大门户网站或者中小网站投放大量广告,为的就是提升品牌知名度。2.确定广告预算预算是根据目标来制定的每天开发多少个用户,需要的广告费,都要有个预算。例如开发一个用户需要50元,那么开...

2019-11-28 13:35:40 673

原创 八个主要网络广告方法,广告人一定要知道

网络广告就是在网络上做的广告。通过网络广告投放平台来利用网站上的广告横幅、文本链接、多媒体的方法,在互联网刊登或发布广告,通过网络传递到互联网用户的一种高科技广告运作方式。以下是网络广告的方法汇总:1、横幅广告横幅广告又称旗帜广告(Banner),是以GIF、JPG、Flash等格式建立的图像文件,定位在网页中大多用来表现广告内容。般位于网页的最上方或中部,用户注意程度比较高。2、竖幅广告...

2019-11-28 13:34:19 2042

原创 搜索引擎营销简介

搜索引擎营销是什么?搜索引擎营销、搜索引擎优化与关键词广告到底有什么不同?不要说一般用户会满头雾水,有时候一些专家所谈的内容也可能南辕北辙,我们一一来解释清楚。搜索引擎营销,顾名思义就是通过网络搜索引擎来进行营销活动。例如用户在搜索引擎(如百度等)输入关键字,然后依照显示的搜索结果点选符合需求的资料,这时候出现的资料(可能是自然搜索结果,也可能是关键字广告)就是网络搜索营销活动结果之一。其中...

2019-11-24 23:37:43 408

原创 定义网络营销,到底和网店有什么区别

网络营销主要分为三个定义,它们分别是:1.网络营销不是孤立存在的网络营销是企业整体营销战略的一个组成部分,网络营销活动不可能脱离一般营销环境而独立存在,在很多情况下,网络营销理论是传统营销理论在互联网环境中的应用和发展。2.网络营销不等于网上销售网络营销是为最终实现产品销售、提升品牌形象的目的而进行的活动,网上销售是网络营销发展到一定阶段产生的结果,但这并不是结果,因此网络营销本身并不等于...

2019-11-24 23:05:32 469

原创 纵观:网络营销的历史

网络营销是企业整体营销战略的一个组成部分,网络营销是为实现企业总体经营目标所进行的,以互联网为基本手段营造网上经营环境的各种活动,是一个广义词。从商业角度来讲,网络营销更宽泛的涵盖网络的产品及投放互联网概念。网络营销(On-line Marketing或E-Marketing)是随着互联网进入商业应用而产生的,尤其是万维网(www)、电子邮件(e-mail)、搜索引擎、社交软件等得到广泛应用之后...

2019-11-23 21:37:35 405

原创 浅谈五大网络广告要素, 你看懂了吗

网络广告一共有五大要素,它们分别是:广告主:它是指发布网络广告的企业、单位或者个人。任何都可以自行上网或通过他人在网上发布各类广告,可以是免费的或者有偿的。广告费用:它是指上网发布广告投放的资金。这通常是有偿广告,比较多的是硬广告方面的费用。3.广告媒体:网络广告的媒体就是网络上的所有平台,包括网络、电子邮件、移动网络等。广告受众:它是指网络广告指向的对象,或者称网络广告的...

2019-11-23 21:36:12 777

原创 求阶乘N!末尾有几个0

方法其实很简单,实质是计算在阶乘当中出现的5的倍数的数字,因为只有5*2产生末尾1个0.遇到25等5的n次方数时则除等5,计算里面有几个5.int Zero(int n){int count = 0;while(n != 0){count += n/5;n /= 5;}return count;}int main(){printf("%d\n",Zero(25));pr...

2019-03-28 15:40:19 693

原创 const的基本使用方法

const的作用是修饰定义常量及变量,使不允许修改其值。例如 int const i = 10;这样定义了i后,就再也无法修改i的值。例如之后int i=10;int i=j;等全部都会报错。这里还有一点,之后再次定义int i=10;也会报错,哪怕是修改成同等的数值也不可以。const的使用有如下几个规则:1.基本的数据类型对于const是透明的。int const i = 0;cons...

2019-03-04 11:46:37 232

原创 假设在n进制下,等式成立。 567*456=150216,则n的值是( ) A.9 B.10 C.12 D.18

假设在n进制下,等式成立。 567*456=150216,则n的值是( )A.9 B.10 C.12 D.18分析:两边可设为:(5n2+6n+7)(4n2+5n+6)=n5+5n4+2n2+n+6可化简为:20n4+49n3+88n2+71n+42=n5+5n4+2n2+n+6 (1)(1) 两边同时对n取余:得42%n=6%n=6故可以排除B选项。(1) 两边同...

2019-02-19 21:33:59 194

原创 浅析C语言中“++”、“- -”等缩略写法

初学C语言,不难发现,许多基本例题都会用到“i++”、“++i”等简写,稍有不慎,就很容易弄混,下面就让我们来细致分析下,这些简写究竟代表什么,和如何区别开来。1.“++”和“- -”举个例子,int i=10;int j;那么j=++i; j=- -i;j=i++;j=i- -中,j和i的值分别为多少?j=++i,可以看成两步:1.i=i+1=10+1=11;2.j=i=11;同...

2019-02-12 15:08:28 3705 1

原创 给一个不多于五位的正整数,求(1)求出它是几位数 (2)分别输出每一位数字(3)按逆序输出各位数字

给一个不多于五位的正整数,求:(1)求出它是几位数。(2)分别输出每一位数字。(3)按逆序输出各位数字。(1)求出它是几位数:#include &lt;stdio.h&gt;int GetFigures(int n){int count=0;while (n!=0){count++;n/=10;}return count;}int main(){printf("...

2019-02-08 13:50:27 4100 1

空空如也

空空如也

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

TA关注的人

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