摘要: 基本思路 先默认未排序区首个元素为最小,然后从后面的元素中挑出最小的元素,与这个元素交换,直至循环完成。 算法代码 算法分析 从i个记录中挑选最小记录需要比较i-1次。 第i(i=0~n-2)趟从n-i记录中挑选最小记录需要比较n-i-1。 对 n 个记录进行简单选择排序,所需进行的关键字的比较次数 阅读全文
posted @ 2019-08-15 21:39 WindSun 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 基本思想 每趟使表的第1个元素放入适当位置(归位),并且左边的元素小于这个元素,右面的元素大于这个元素,将表一分为二,对子表按递归方式继续这种划分,直至划分的子表长为0或1(递归出口)。 快速排序递归树 算法代码 算法分析 最好情况: 此时时间复杂度为O(nlog2n),空间复杂度为O(log2n) 阅读全文
posted @ 2019-08-15 21:32 WindSun 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 基本思路 希尔排序也是一种插入排序,又称缩小增量排序,在效率上教其他插入排序有较大的改进。 ① d=n/2 ②将排序序列分为d个组,在各组内进行直接插入排序 ③递减d=d/2,重复② ,直到d=1 算法最后一趟对所有数据进行了直接插入排序,所以结果一定是正确的。 它的基本思想是:先将整个待排记录序列 阅读全文
posted @ 2019-08-15 21:20 WindSun 阅读(693) 评论(0) 推荐(0) 编辑
摘要: 直接插入排序 基本思路 一趟直接插入排序:在有序区中插入R[i]的过程。 算法代码 算法分析 折半插入排序 基本思路 直接插入排序,当有序区元素太多时,在有序区中寻找插入位置可能比较的次数太多,采用折半插入法,即折半查找到要插入的位置,加快了查找效率,但是要移动的元素仍然和直接插入排序的相同,仅仅提 阅读全文
posted @ 2019-08-15 20:58 WindSun 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 【原文: https://www.cnblogs.com/fortunely/p/10254161.html】 1.基本概念 堆,分为大顶堆(大堆)和小顶堆(小堆),是顺序存储的完全二叉树,并且满足以下特性之一: (1) 任意非终端结点关键字不小于左右子结点(大堆) ki >= k2i+1并且ki> 阅读全文
posted @ 2019-08-14 23:46 WindSun 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 简介 Tinyhttp是一个轻量型Http Server,使用C语言开发,全部代码只500多行,还包括一个简单Client。 Tinyhttp程序的逻辑为:一个无线循环,一个请求,创建一个线程,之后线程函数处理每个请求,然后解析HTTP请求,做一些判断,之后判断文件是否可执行,不可执行,打开文件,输 阅读全文
posted @ 2019-08-13 00:45 WindSun 阅读(1184) 评论(0) 推荐(0) 编辑
摘要: 在Linux下编译C++11 #include int main() { auto a=10; cout(); vector iv; auto ite = iv.begin(); auto p = new foo() // 对自定义类型进行类型推导 auto不光有以上的应用,它在模板中也是大显身手,比如下例这个加工产品的例子中,如果不使用auto就必须声明Product这一模... 阅读全文
posted @ 2019-08-11 20:46 WindSun 阅读(750) 评论(0) 推荐(0) 编辑
摘要: 继承 继承的一般形式 子类继承父类,是全盘继承,将父类所有的东西都继承给子类,除了父类的生死,就是父类的构造和析构是不能继承的。 继承的访问权限从两方面看: 1.对象:对象只能直接访问类中公有方法和成员。 2.继承的子类 私有继承就终止了父类再往下继承的能力 c++默认继承为私有继承 像以下程序 class D :public B1 ,public B2,public B3 公有继承B1,B2... 阅读全文
posted @ 2019-08-11 17:52 WindSun 阅读(1707) 评论(0) 推荐(0) 编辑
摘要: 前言 如果向要在一个文件中使用另一个文件中的变量,不能在头文件中定义全局变量,因为被多个文件包含后会导致编译出错,并且静态的static变量,只能在本文件内使用,这时候就可以使用extern关键字。 extern 关键字: 首先还是先看一下 extern 关键字的作用:extern关键字可以置于变量 阅读全文
posted @ 2019-08-11 10:43 WindSun 阅读(2063) 评论(0) 推荐(0) 编辑
摘要: 前言 说到服务器,一定会想到apache的httpd和Nginx Apache的发展时期很长,而且是毫无争议的世界第一大服务器。它有着很多优点:稳定、开源、跨平台等等。它出现的时间太长了,它兴起的年代,互联网产业远远比不上现在。所以它被设计为一个重量级的。它不支持高并发的服务器。在Apache上运行 阅读全文
posted @ 2019-08-09 23:55 WindSun 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 内存模型图 32位CPU可寻址4G线性空间,每个进程都有各自独立的4G逻辑地址,其中0~3G是用户态空间,3~4G是内核空间,不同进程相同的逻辑地址会映射到不同的物理地址中。其逻辑地址其划分如下: 各个段说明如下: 3G用户空间和1G内核空间 静态区域: text segment(代码段):包括只读 阅读全文
posted @ 2019-08-09 17:58 WindSun 阅读(6288) 评论(0) 推荐(2) 编辑
摘要: 解决办法:项目名称-右键属性-C/C++ - 预处理器 -预处理器定义 - 右侧下拉框中选择“编辑”- 在第一个编辑框中添加_CRT_SECURE_NO_WARNINGS 阅读全文
posted @ 2019-08-09 14:55 WindSun 阅读(1791) 评论(0) 推荐(0) 编辑
摘要: 更换之前确保自己安装wget yum list wget若没有安装: yum -y install wget 首先备份原版/etc/yum.repos.d/CentOS-Base.repo cd /etc/yum.repos.d sudo mv CentOS-Base.repo CentOS-Base.repo.bak 下载阿里的yum源配置文件,放入/etc/yum.repos.d/CentO... 阅读全文
posted @ 2019-08-09 10:58 WindSun 阅读(15620) 评论(2) 推荐(3) 编辑
摘要: 类的基本成员函数 一个类包含:构造、析构、拷贝构造、赋值构造、常对象取地址、普通对象取地址基本函数 类中的const方法与普通方法 void fun() const和void fun()是可以共存的 如果不加const 加了const 1.因为函数后加了const就封锁了*this 为常量,就不能通 阅读全文
posted @ 2019-08-08 23:14 WindSun 阅读(736) 评论(0) 推荐(0) 编辑
摘要: 1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。 例如,调... 阅读全文
posted @ 2019-08-08 19:06 WindSun 阅读(11159) 评论(0) 推荐(2) 编辑
摘要: && 和 || 和 !属于逻辑运算符号 & 和 | 和 ^ 属于位操作符 一、&&和&的区别 1.1 相同点: &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。 1.2不同点 阅读全文
posted @ 2019-08-08 16:23 WindSun 阅读(3981) 评论(1) 推荐(1) 编辑
摘要: 今天遇到一个问题 题目描述: 实现函数 unsigned int ipanel_parse_ip_addr(const char*ip) 功能:解析IPv4地址 测试用例: unsigned int ip addr=ipanel_parse_ip_addr("192.168.10.1"); printf("%x\n",ip_addr); 要求输出:c0a80a01不允许使用字符串相关库函数 请在程... 阅读全文
posted @ 2019-08-08 10:36 WindSun 阅读(605) 评论(0) 推荐(0) 编辑
摘要: 1、定义 C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为: int main (int argc,char *argv[]){…} int main (... 阅读全文
posted @ 2019-08-03 00:38 WindSun 阅读(17614) 评论(0) 推荐(1) 编辑
摘要: TinyXML介绍 最近做一个负载均衡的小项目,需要解析xml配置文件,用到了TinyXML,感觉使用起来很容易,给出一个使用TinyXML进行XML解析的简单例子,很多复杂的应用都可以基于本例子的方法来完成。 TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历... 阅读全文
posted @ 2019-08-02 22:24 WindSun 阅读(9549) 评论(0) 推荐(1) 编辑
摘要: 概述 Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库。linux系统有几个重要的目录存放相应的函数库,如/lib /usr/lib。 静态函数库: 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进可... 阅读全文
posted @ 2019-08-02 12:38 WindSun 阅读(4437) 评论(0) 推荐(0) 编辑
博客已停更,文章已转移,点击访问