自定义博客皮肤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 531

原创 冒泡排序

#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 468

原创 快速排序

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

2014-05-29 17:38:54 546

原创 归并排序

#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 439

原创 堆排序

#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 509

原创 希尔排序

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

2014-05-29 14:47:39 454

原创 插入排序

基本思想就是将后面的元素插入到前面的已排序序列中。 #include "stdafx.h" #define ElementType int void 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 475

原创 用链表实现队列

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

2014-05-29 10:00:09 632

原创 用链表实现栈

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

2014-05-28 16:37:23 582

原创 用循环数组实现队列

Queue.h #ifndef _QUEUE_H typedef 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 418

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

Stack.h #ifndef _STACK_H typedef 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 340

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

List.h #ifndef _LIST_H typedef 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 310

原创 求X的N次方

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

2014-05-27 14:55:55 556

原创 求最大公约数

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

2014-05-27 14:28:32 331

转载 二分查找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 564

转载 实现strcpy函数功能

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

2014-05-27 11:25:20 1221

转载 类中const的用法

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

2014-01-20 09:59:55 680

转载 重载和覆盖

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

2013-12-03 09:03:41 422

转载 const的使用

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

2013-11-28 11:16:02 343

转载 C++new失败的处理

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

2013-11-28 10:39:55 381

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

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

2013-11-01 09:24:55 616

转载 DWORD

typedef unsigned long DWORD;

2013-10-30 10:30:45 501

转载 MTVERIFY宏的使用

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

2013-10-30 09:52:15 548

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

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

2013-10-29 16:19:24 353

转载 Windows数据类型

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

2013-10-29 11:27:38 372

转载 #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 2308

NSGA-II matlab程序+by Aravind Seshadri

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

2011-11-07

空空如也

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

TA关注的人

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