自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法导论学习笔记(7)——动态规划之装配线调度

装配线问题如下:      Colonel汽车公司在有两条装配线的工厂内生产汽车,一个汽车底盘在进入每一条装配线后,在每个装配站会在汽车底盘上安装不同的部件,最后完成的汽车从装配线的末端离开。如下图所示。                                          图1  装配线示意图      每一条装配线上有n个装配站,编号为j=1,2,...,n

2012-04-30 20:48:59 740

转载 算法导论学习笔记(5)——二叉查找树

#includeusing namespace std;struct BSTree{int data;BSTree *left;BSTree *right;};//标记在插入时,如果已存在,则为true ,表示不需要插入,否则为falsebool flag = false;int a[100];//查找操作BSTree *search(BSTree

2012-04-29 21:32:49 342

原创 算法导论学习笔记(4)——利用链接法实现哈希表

常用的解决哈希冲突的方法有两种:一、开放定址法:开放定址法是一类以发生冲突的哈希地址为自变量,通过某种哈希冲突函数得到一个新的空闲地址的方法。在开放定址法中常用的有线性探查法和平法探查法;线性探查容易产生堆积问题。而平方探查法可以解决堆积问题,但不能探查到哈希表上的所有单元,但至少能探查到一本单元二、拉链法:拉链法是把所有的同义词用单链表链接起来的一种方法,与开放定址法相比有以下优点:

2012-04-29 20:58:11 957

原创 算法导论学习笔记(3)---计数排序

计数排序是一种算法复杂度 O(n) 的排序方法,适合于小范围集合的排序。比如100万学生参加高考,我们想对这100万学生的数学成绩(假设分数为0到100)做个排序。我们如何设计一个最高效的排序算法。本文不光给出计数排序算法的传统写法,还将一步步深入讨论算法的优化,直到时间复杂度和空间复杂度最优。计数排序是一个类似于桶排序的排序算法,其优势是对已知数量范围的数组进行排序。它创建一个长度为这个数据

2012-04-29 15:23:10 423

转载 算法导论学习笔记(2)---快速排序

快速排序快速排序平均复杂度是nlogn,记录一下快速排序的思路:1.分治的思想,把数组分成两份,两份分成4分,这样分到足够小,就能很好排序咯,然后把他们合起来,排序完成。2.该分治思想和合并排序思想一样,但是处理上更搞一筹,他是把小的和大的分成两份,这样在最后合并的时候,就不会像合并排序那样还要检查,因为本来就是左边比右边小,所以可以做到原地排序(就是不用申请多余的空间)。3.如何

2012-04-29 14:46:05 383

原创 算法导论学习笔记(1)---堆排序

#include using namespace std;/*交换*/void swap(int &a, int &b){ int temp = a; a = b; b = temp;}/*调整堆节点,节点值大的"上浮" 小的"下沉"时间复杂度为O(lgn)n  堆的大小index 要调整的节点*/void maxHeapify(

2012-04-19 10:23:01 476

转载 一个解决循环内界面假死的方法

前段时间写一个有进度条的单线程窗体程序时,碰到一个问题,即当进度条对应的的任务循环运行时,界面出现假死现象。具体表现为:程序界面没有反映,或者说 反映极慢。曾经试过用多线程来处理这个问题。但是处理线程里面用循环来设置进度条进度位置,仍然导致界面无响应。到网上搜了一下,终于找到一种解决办法。 请参看以下代码:/* ---------------------------------------

2012-04-15 22:12:28 3661 1

转载 A*算法入门

在看下面这篇文章之前,先介绍几个理论知识,有助于理解A*算法。启发式搜索:启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无畏的搜索路径,提到了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。估价函数:从当前节点移动到目标节点的预估费用;这个估计就是启发式的。在寻路问题和迷宫问题

2012-04-15 16:25:07 379

转载 程序员编程艺术(算法卷):第一章、左旋转字符串

前言    本人整理微软等公司面试100题系列,包括原题整理,资源上传,帖子维护,答案整理,勘误,修正与优化工作,包括后续全新整理的80道,总计180道面试题,已有半年的时间了。    关于这180道面试题的一切详情,请参见:横空出世,席卷Csdn [评微软等数据结构+算法面试180题]。    一直觉得,这180道题中的任何一题都值得自己反复思考,反复研究,不断修正,不断优化。之前的

2012-04-12 21:23:42 721

转载 堆排序算法总结

1、 堆排序定义 n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质): (1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ ) 若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。

2012-04-12 16:58:14 329

转载 查找最小的K个元素

题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。分析:这道题最简单的思路莫过于把输入的n个整数排序,这样排在最前面的k个数就是最小的k个数。只是这种思路的时间复杂度为O(nlogn)。我们试着寻找更快的解决思路。我们可以开辟一个长度为k的数组。每次从输入的n个整数中读入一个数。如果数组中已经插入的元素少于k个,

2012-04-12 16:17:52 557

转载 socket IO完成端口模型详解(例子)

#include "stdafx.h"#include #include #define PORT     5150#define MSGSIZE 1024#pragma comment(lib, "ws2_32.lib")typedef enum{   RECV_POSTED}OPERATION_TYPE;       //枚举,表示状态typedef s

2012-04-12 09:50:26 1701 1

转载 Windows下重叠I/O模型

一.重叠模型的优点 1.可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统。2.比起阻塞、select、WSAAsyncSelect以及WSAEventSelect等模型,重叠I/O(Overlapped I/O)模型使应用程序能达到更佳的系统性能。         因为它和这4种模型不同的是,使用重叠模型的应用程序通知缓冲区收发系统直接使用数据,

2012-04-12 09:45:13 422

转载 IO 模型之WSAAsyncSelect模型

Winsock提供了一个有用的异步I/O模型。利用这个模型,应用程序可在一个套接字上,接收以Windows消息为基础的网络事件通知。具体的做法是在建好一个套接字后,调用WSAAsyncSelect函数。该模型最早出现于Winsock的1.1版本中,用于帮助应用程序开发者面向一些早期的16位Windows平台(如Windows for Workgroups),适应其“落后”的多任务消息环境。应用

2012-04-12 09:38:58 400

转载 Winsock异步模式I/O模型WSAEventSelect的使用

1.Winsock同步阻塞方式的问题在异步非阻塞模式下,像accept(WSAAccept),recv(recv,WSARecv,WSARecvFrom)等这样的winsock函数调用后马上返回,而不是等待可用的连接和数据。在阻塞模式下,server往往这样等待client的连接:while(TRUE){    //wait for a connection     Clien

2012-04-12 09:36:28 1068 1

转载 WSAEventSelect模型 用法介绍

WSAEventSelect模型WSAEventSelect模型也是I/O模型中较为常用的一个异步模型,它也允许应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知。该模型最主要是将网络事件投递至一个事件对象句柄。   事件通知   事件通知模型要求我们的应用程序针对打算使用的每一个套接字,首先创建一个事件对象。创建方法是调用WSACreateEvent函数,它的定义如

2012-04-12 09:35:43 503

转载 Select模型 详解

讲一下套接字模式和套接字I/O模型的区别。先说明一下,只针对Winsock,如果你要骨头里挑鸡蛋把UNIX下的套接字概念来往这里套,那就不关我的事。套接字模式:阻塞套接字和非阻塞套接字。或者叫同步套接字和异步套接字。套接字模型:描述如何对套接字的I/O行为进行管理。Winsock提供的I/O模型一共有五种:select,WSAAsyncSelect,WSAEventSelect,O

2012-04-12 09:34:48 478

转载 五种WinSock I/O模型的特点及比较

======select 模型:select模型是WinSock中应用最广泛的模型之一,核心就是select函数,它可用于判断套接字上是否存在数据,或者能否向一个套接字写入数据。这个函数可以有效地防止应用程序在套接字处于阻塞模式中时,send或recv进入阻塞状态;同时也可以防止产生大量的WSAEWOULDBLOCK错误select的优势是能够从当个线程的多个套接字上进

2012-04-12 09:33:24 644

texturepacker309

图像处理软件,可以转换图片像素格式,如RGBA8888->RGBA4444

2014-08-05

空空如也

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

TA关注的人

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