自定义博客皮肤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)
  • 收藏
  • 关注

原创 快速选择

可以通过改写快速排序算法来得到快速选择算法,分别利用2种快速排序

2014-06-05 14:38:48 539

原创 冒泡排序

#include "stdafx.h"void Swap(int *x,int *y){ int tmp; tmp = *x; *x = *y; *y = tmp;}void BubbleSort1(int A[], int N){ int i = 0; int j = 0; for (i=N-1; i>0; i--) for (j=0; j<i; j++)

2014-05-30 11:00:59 474

原创 快速排序

当元素较少时,用插入排序速度更快(N而且快速排序首先需要分割,所以至少要有3个元素。

2014-05-29 17:38:54 551

原创 归并排序

#include "stdafx.h"#define ElementType int//Lpos前半部分起始位置,Rpos后半部分起始位置,RightEnd结束位置void Merge(ElementType A[], ElementType TmpArray[], int Lpos, int Rpos, int RightEnd){ int startIndex = Lpos;

2014-05-29 16:41:21 444

原创 堆排序

#include "stdafx.h"#define LeftChild(i) (2*(i)+1) //void Swap(int *x,int *y){ int temp = 0; temp = *x; *x = *y; *y = temp;}void PercDown(int A[], int i, int N) //i是根节点{ int child = 0;

2014-05-29 15:33:59 529

原创 希尔排序

其实希尔排序和插入排序好像好像!

2014-05-29 14:47:39 458

原创 插入排序

基本思想就是将后面的元素插入到前面的已排序序列中。#include "stdafx.h"#define ElementType intvoid InsertionSort(ElementType A[], int N){ int i = 0; int j = 0; ElementType tmp; for (i=1; i<N; i++) { tmp = A[i];//保

2014-05-29 10:38:34 480

原创 用链表实现队列

QueueByList.h#ifndef _QUEUE_Htypedef struct Node * PtrNode;typedef struct QueueByList * PtrQueueByList;PtrQueueByList CreateQueue();bool IsEmpty(PtrQueueByList Q);void EnQueue(PtrQueueByList

2014-05-29 10:00:09 638

原创 用链表实现栈

用一般链表创建的逆向思维就可以。一般链表创建是新建一个节点作为已有节点的后续节点,而这里是新建一个节点作为已有节点的前驱节点。所以最新创建的节点在链表开头,即栈顶位置。

2014-05-28 16:37:23 587

原创 用循环数组实现队列

Queue.h#ifndef _QUEUE_Htypedef struct Queue * PtrQueue;void MakeEmpty(PtrQueue Q);PtrQueue CreateQueue(int maxSize);bool IsEmpty(PtrQueue Q);bool IsFull(PtrQueue Q);void DeleteQueue(PtrQueue

2014-05-28 14:46:58 424

原创 利用数组实现数据结构——栈

Stack.h#ifndef _STACK_Htypedef struct Stack * PtrStack;void MakeEmpty(PtrStack S);PtrStack CreateStack(int size);bool IsFull(PtrStack S);bool IsEmpty(PtrStack S);void DeleteStack(PtrStack S)

2014-05-28 10:08:00 346

原创 用C实现基本链表功能

List.h#ifndef _LIST_Htypedef struct Node* PtrNode;typedef struct Node* List;typedef struct Node* Position;void Insert (int X, List L, Position P);void CreateListByArray (List *L,int A[], int

2014-05-28 10:05:44 316

原创 求X的N次方

在数据结构与算法的书上看到了这样递归二分求幂的方法,自己写了一下:

2014-05-27 14:55:55 565

原创 求最大公约数

欧几里得算法,也叫辗转相除法。

2014-05-27 14:28:32 336

转载 二分查找key值是否在排序数组中

//二分查找//查找一个排序后的数组Arr中是否含有元素Key//若有,则返回Key在数组中的下标;若无,则返回-1#include "stdafx.h"//这个函数有问题,用主函数现在的设置做测试,发现会死循环//最后High=7,Low=6,Mid=6//而(Key > Arr[MidIndex])永久成立,因为Low==Mid,所以下标不会被修正//事实上,这个Key不存在

2014-05-27 11:46:58 573

转载 实现strcpy函数功能

第一次写这个程序的时候写的很烂,感觉从网上找的这个很好。char *strcpynry(char *strDest, char *strSource){char* strDestCopy = strDest;//这里要先保存一下目的指针,因为下面会改变if (strDest == NULL || strSource == NULL)//验证传进来的指针的合法性throw

2014-05-27 11:25:20 1247

转载 类中const的用法

1.const常量,如const int max = 100; 优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边际效应)2.const 修饰类的数据成员。如:class A{    const int size;    … }

2014-01-20 09:59:55 720

转载 重载和覆盖

有的时候,类的同一种功能有多种实现方式,到底采用哪种实现方式,取决于调用者给定的参数。例如我们最常用的System.out.println()能够打印出任何数据类型的数据,它有多种实现方式。运行时,Java虚拟机先判断给定参数的类型,然后决定执行哪个println()方法。 重载(overload):对于类的方法(包括从父类中继承的方法),方法名相同,参数列表不同的方法之间就构成了重载关系

2013-12-03 09:03:41 428

转载 const的使用

一   const基础         如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况:         int   b   =   500;     const   int*   a   =   &b;              [1]     int   const   *a   =   &b;              [2]     in

2013-11-28 11:16:02 357

转载 C++new失败的处理

我们都知道,使用 malloc/calloc 等分配内存的函数时,一定要检查其返回值是否为“空指针”(亦即检查分配内存的操作是否成功),这是良好的编程习惯,也是编写可靠程序所必需的。但是,如果你简单地把这一招应用到 new 上,那可就不一定正确了。我经常看到类似这样的代码:        int* p = new int[SIZE];        if ( p == 0 ) // 检

2013-11-28 10:39:55 385

转载 多任务操作系统进程和线程同步控制

http://blog.163.com/tianle_han/blog/static/661782620086125122542/在多任务操作系统环境下,进程和线程的同步控制是多线程和多进程编程的一个重点,稍作总结 一、临界区(criticalsection) 1、临界区是线程同步的一种方式,即它在同一时刻只允许一个线程进入,其他线程只能等往此临界区被释放后

2013-11-01 09:24:55 629

转载 DWORD

typedef unsigned long DWORD;

2013-10-30 10:30:45 511

转载 MTVERIFY宏的使用

最近在看侯捷翻译的《Win32多线程程序设计》。我去,这本书可真够老了(1997年),不过总要学多线程啊,不然感觉自己还是门外汉。书是老了些,但是讲的真的很系统也很基础,挺适合我的。刚看了几个程序示例,里面都有一个宏MTVERIFY,貌似是用来记录并解释GetLastError()函数的结果,方便调试出错信息的。本来不想理这个东东,后来发现在书里用的很频繁,就索性深入的看看吧。首先

2013-10-30 09:52:15 555

转载 临界区,互斥量,信号量,事件的区别

最早的一篇原文:http://hi.baidu.com/cnrjm/blog/item/5d217e54ff863550564e00b9.html  四种进程或线程同步互斥的控制方法1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 3、信号量:为控制一个具有有限数量用户

2013-10-29 16:19:24 358

转载 Windows数据类型

Windows API使用了很多Windows自己定义的数据类型。要熟练使用Windows API必须要熟悉Windows数据类型。这些数据类型是Windows特有的。在SDK的相关头文件中有定义。Windows数据类型都是从标准C的数据类型经过类型重定义而来。INT数据类型是有符号整型,DWORD数据类型是无符号整型。2常见类型为什么说是常见数据类型而不是全部呢?因为第一,Win

2013-10-29 11:27:38 376

转载 #define WIN32_LEAN_AND_MEAN 的作用

1:为什么要  #define WIN32_LEAN_AND_MEAN 。答案很简单,因为要包含尽量精简的内容,包含了这一句编译的时候明显快多了。2:不加载MFC所需的模块。如果你的工程不使用MFC,就加上这句,这样一来在编译链接时,包括最后生成的一些供调试用的模块时,速度更快,容量更小。3:我想这个不是 MFC 特有的, WIN32_LEAN_AND_MEAN 是针对 Win32

2013-10-29 11:14:28 2319

NSGA-II matlab程序+by Aravind Seshadri

NSGA-II的matlab程序,由Aravind Seshadri编写

2011-11-07

空空如也

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

TA关注的人

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