自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wenqian 'blog

厚积薄发——Practice makes perfect !

  • 博客(17)
  • 资源 (7)
  • 收藏
  • 关注

原创 【经典排序算法】桶排序

桶排序假设待排序的一组数统一的分布在一个范围中,然后设定对应数据数量的桶,待排序的一组数,分别对应算式处理归入这些子桶,并将桶中的数据进行排序,最后将各个桶中的数据有序的合并起来。通俗的说,就是通过某个公式将待排序的一组数分为几个子范围,然后归入到对应的子桶,这样必然会有不一样的数据经过算式处理后对应同一个桶,我们可通过简单比较将对应同一个桶的不同数据排序,最后各个数据处理完后,有的桶为空,有

2014-03-31 21:06:55 1715

原创 【数据结构】平衡二叉树[AVL树](二)——删除

前面介绍了平衡二叉树的插入操作:平衡二叉树的插入,这里来介绍平衡二叉树的删除,平衡二叉树是一棵带有平衡条件的二叉查找树,其删除操作是在二叉查找树的基础上添加平衡调整算法。二叉查找树的删除操作参见博文:二叉查找树的删除(第七点)先看一下示意图()/*二叉查找树的性质让我们可以很方便的查找最小最大键值*//*查找最小键值节点:直接递归遍历左子树叶子节点*/AvlNode* Av

2014-03-27 18:01:46 6087 2

原创 【数据结构】平衡二叉树[AVL树](一)——插入

AVL 树是带有平衡条件的二叉查找树,所谓的平衡条件就是每个节点的左子树和右子树的高度最大差别为1。平衡二叉树的实现大部分过程和二叉查找树是一样的,区别在于要时刻保持树的平衡,所以在插入和删除之后要添加一个旋转算法来保持平衡,保持平衡需要借助一个节点高度的属性。一、AVL 节点class AvlTree;class AvlNode{public: AvlNode(int va

2014-03-26 17:37:35 7331 2

原创 【Unix 网络编程】说说 socket 套接字

套接字描述符同文件描述符一样是一个整数类型的值,是通信端点的抽象。对于每个程序系统都有单独的表,精确地讲,系统为每个运行的进程维护一张单独的文件描述符表。当进程打开一个文件时,系统把一个指向此文件内部数据结构的指针写入文件描述符表,并把该表的索引值返回给调用者。为了将不同类型的 IO 与对应的文件描述符绑定,则需要不同的初始化函数,这相当于面对对象里面的多态。普通文件就通过 open 函数,指

2014-03-23 16:32:09 2735

原创 Chapter 3 | Stacks and Queues--两个栈实现队列

3.5  Implement a MyQueue class which implements a queue using two stacks.译文:利用两个栈实现一个队列 MyQueue。都知道队列的特点是 “先进先出”(FIFO),栈的特点是 “先进后出”(FILO)。可以很简单的通过两个栈来实现一个队列,即实现队列,则先将数据压入第一个栈,然后依次弹出并压进第二个栈,随

2014-03-21 16:36:28 1142

原创 【Unix 网络编程】TCP 客户/服务器简单 Socket 程序

前面介绍了Socket 编程函数  在编写 Socket 程序之前还需要了解TCP连接是如何建立的。(参考资料《Unix 网络编程》)建立一个 TCP 连接时会发生下述情形:1. 服务器必须准备好接受外来的连接。这通常通过调用 socket、bind 和 listen 这三个函数来完成,我们称之为被动打开。2. 客户通过调用 connect 发起主动打开,这导致客户TCP发送一个SYN

2014-03-20 19:25:43 3157

原创 Chapter 3 | Stacks and Queues--栈解决汉诺塔问题

3.4  In the classic problem of the Towers of Hanoi, you have 3 rods and Ndisks of different sizes which can slide onto any tower. The puzzle starts with disks sorted in ascending order of size from to

2014-03-19 20:29:50 2618

原创 Chapter 3 | Stacks and Queues--实现数据结构模拟一个栈由几个子栈组成,并可以在指定子栈上进行出栈操作

3.3  Imagine a (literal) stack of plates. If the stack gets too high,it might topple. Therefore, in real life, we would likely start a newstack when the previous stack exceeds some threshold. Implemen

2014-03-17 21:54:10 1528 1

原创 【Unix 网络编程】TCP Socket 编程基础(0)

一、套接口地址结构 IPv4 套接口地址结构struct in_addr{ in_addr_t s_addr; /*32-bit IPV4地址*/}; /*网络字节序*/struct sockaddr_in{ uint8_t sin_len; /**/ sa_family_t sin_family

2014-03-17 14:45:39 2806

原创 【ITK】VS2008 (VS2012) 配置 ITK

接下来的课题需要用到 ITK,需要对其配置,同 Opencv,ITK 也是一个库,先后尝试过 VS2013 和 VS2010,均出现CMake编译出错,就差在LInux下编译了。后来终于在VS2008下配置成功。1. 下载 ITK  http://www.itk.org/ITK/resources/software.html 这里是InsightToolkit-4.5.1 2. 下

2014-03-15 13:05:06 5172 2

原创 【数据结构】二叉堆(堆)

二叉堆(也叫堆)是一个部分排序的二叉树,其排序规则体现在它的堆序性质上:最大堆和最小堆,最大堆就是其对于任一节点,每个节点的键值都大于等于它的孩子节点,所以根节点键值最大。最小堆则相反。堆是一棵完全二叉树,具备完全二叉树的性质,可以用一个数组表示而不需要指针,在起始位置为 0 的数组中任一位置 i 上的元素,其左儿子在位置 2*1+1 上,右儿子在左儿子的后面邻近位置上,它的父节点则在位置 (

2014-03-12 19:16:11 1816

原创 【经典排序算法】快速排序

快速排序也是采用分治法,将问题化整归零来处理。步骤为:1. 从数列中调出一个元素,称为 “基准”(pivot);2. 重新排序数列,排序规则就是将数列中比基准值大的放在基准的后面,将比基准值小的放在基准的前面,在这个分区退出之后,该基准就处于数列的中间位置(非绝对中间位置),这个称为分区操作;3. 递归地把小于基准值元素的子数列和大于基准值元素的子序列排序。递归的终止条件就是数列的

2014-03-11 20:15:57 1492 1

原创 【经典排序算法】归并排序

归并排序是建立在归并操作上的一种有效的排序算法,采用分治法。将两个(或两个以上)有序表合并成一个新的有序表。分而治之:分就是将待排序序列分为若干个有序的子序列,对子序列进行排序;合就是把有序的子序列合并为整体有序序列。这个算法

2014-03-08 21:06:31 1893 1

原创 【经典排序算法】选择排序、堆排序

1、选择排序实现思想:首先在未排序序列中找到最小(大)元素,存放在排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾,以此类推,直到所有元素均排序完毕。通俗的讲就是从无序区(不同于插入排序,这里的无序区包含所有元素)选一个最小(大)的元素直接放在有序区的最后,即选择一个最小的元素依次放在前面,即选择最小(大)元素就有个逐一比较和交换的过程。实现步骤

2014-03-07 13:37:26 1579

原创 【经典排序算法】插入排序、希尔排序

1、直接插入排序基本思想:每次将一个待排序的数据,按其大小插入到前面已经排好序的子序列中的适当位置,直到全部数据插入完成为止。换言之,就是将无序区(第一个元素默认有序)的第一个元素(也就是输入数组的第二个元素)通过与有序区的数据进行比较,然后直接插入到有序区的适当位置,形成更大的有序区,这样有序区扩大了一个元素,无序区缩小了一个元素。以此循环遍历,最终,整个数组就构成了有序区,排序也就完成了。

2014-03-06 14:28:54 1289

原创 【经典排序算法】冒泡排序

说到算法,不得不提到两个重要的概念:时间复杂度和空间复杂度。这两者都跟数据的输入规模 n 密切相关,时间复杂度的计算就是:找到执行次数最多的语句,然后计算语句执行次数的数量级,用大O表示结果。可以把这个输入规模看做是一个变量来理解,如果时间复杂度为O(1),那个这个 n 就不是一个变量而是一个常量,不管其数值是多少,哪怕是十万级,它的时间复杂度也是O(1),相反如果这个 n 是一个变量,可能它的最

2014-03-04 15:10:05 1761

原创 【数据结构】二叉查找树【续】之非递归遍历

对于二叉查找树,前面有博文介绍:http://blog.csdn.net/wenqian1991/article/details/18228309【二叉查找树】,关于二叉树的三种遍历方式介绍,参见前面链接。二叉树的遍历关键在于:出的去要回得来。以中序遍历为例,先遍历左子树,再访问根节点,最后遍历右子树,当遍历完左子树,即发现访问到左子树的叶子节点了,下一步便是访问该叶子节点的根节点,再右子树。接下

2014-03-01 16:24:17 1216

排序二叉树完整代码

本代码涵盖二叉查找树的创建,插入,删除,添加,遍历等操作,结合http://blog.csdn.net/wenqian1991/article/details/18228309 可理解

2014-03-01

proteus8086实验指导书

8086的proteus仿真 实验指导书,比干巴巴的看编译器仿真好多了

2012-05-13

微机原理与接口技术重点难点及典型题精解

西交大出版的,同系列的电气类书籍都不错,市面上关于微机的参考书籍比较少(除教材配套的),

2012-04-04

C++项目实践

如题目所言,不过里面只有一个大型的C++开发项目,工资管理系统开发

2012-02-20

数据结构与算法分析 C++描述

很好的资料,正如题目所描述的那样,非常经典的一本书

2012-02-18

J-Link用户手册(中文)

J-Link用户手册(中文) 笔记本调试arm开发板

2011-05-24

空空如也

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

TA关注的人

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