- 博客(8)
- 资源 (3)
- 收藏
- 关注
原创 读《算法导论》我来C语言实现(4)——快速排序
快速排序通常是用于排序的最佳的使用选择,这是因为其平均性能相当好,像合并排序一样,快速排序也是基于分治模式的,下面是快速排序的C语言实现过程: #include //将数组分为两部分,前半部分和后半部分分别小于和大于分隔的那个数 unsigned int partition(int *A, int p, int r) { int x = A[r]; int i = p - 1, j, t
2012-11-20 20:51:34 554
原创 读《算法导论》我来C语言实现(3)——堆排序和优先级队列
堆排序是一个性能很优的排序算法,一般借助数据结构——最大堆,来实现排序的效果,一般步骤为:建堆——排序,建堆和排序的过程中都夹杂着保持堆的稳定性。优先级队列也用到数据结构堆,主要C语言算法如下: #include #include //记录最大堆的长度 unsigned int heap_size = 0; //下标从0开始 //求父节点的下标 unsigned int parent(
2012-11-18 22:04:25 827
原创 读《算法导论》我来C语言实现(2)——合并排序
书上讲的第二个算法是合并排序,采用了分治法的思想,合并法遵照了分治模式,在每一层递归上都有三个步骤: 分解:将n个元素分成各含n/2个元素的子序列 解决:用合并排序对两个子序列递归地排序 合并:合并两个已排序的子序列以得到排序的结果 在对子序列排序时,其长度为1时递归结束。单个元素被视为是已排好序的。 其C语言实现如下: #include
2012-11-17 22:27:58 666
原创 读《算法导论》我来C语言实现(1)——插入排序
最近在重新温习算法导论,书里面的算法一段时间不看就会忘记,于是我就想重新用C语言码出来,等以后自己再用复习或要用的时候,直接阅读代码,更加方便。 书上讲的第一个算法也是个人认为最简单的一个——插入排序,作者把插入排序比作打扑克牌时的摸排并排序,很形象,下面是插入排序的代码: #include void insert_sort(int a[], unsigned int n) {
2012-11-15 21:30:17 1125
转载 C++字符串完全指引之二 —— 字符串封装类
原文出处:CodeProject:The Complete Guide to C++ Strings, Part II 引言 因为C语言风格的字符串容易出错且不易管理,黑客们甚至利用可能存在的缓冲区溢出bug把C语言风格的字符串作为攻击目标,所以出现了很多字符串封装类。不幸的是,在某些场合下我们不知道该使用哪个字符串类,也不知道怎样把一个C风格的字符串转换成一个字符串封装类。
2011-07-16 12:18:47 546
转载 C++字符串完全指引之一 —— Win32 字符编码
原文出处:CodeProject:The Complete Guide to C++ Strings, Part I 引言 毫无疑问,我们都看到过像 TCHAR, std::string, BSTR 等各种各样的字符串类型,还有那些以 _tcs 开头的奇怪的宏。你也许正在盯着显示器发愁。本指引将总结引进各种字符类型的目的,展示一些简单的用法,并告诉您在必要时,如何实现各种字符串类型
2011-07-16 10:56:19 490
转载 WinExec()和system()的区别
WinExec是一个WIN32 API,它的第一个参数必须包含一个可执行文件名, SYSTEM是C库函数,它接受一个DOS命令。 你可以这样: WinExec("command /C dir C:\ > dir.txt",SW_HIDE); system("dir >dir.txt") 1: UINT WinExec
2011-07-14 12:55:19 3112
转载 程序集清单(Assembly Manifest)及其在VISTA和WIN7下的应用
每一程序集,无论是静态的还是动态的,均包含描述该程序集中各元素彼此如何关联的数据集合。程序集清单就包含这些程序集元数据。程序集清单包含 指定该程序集的版本要求和安全标识所需的所有元数据,以及定义该程序集的范围和解析对资源和类的引用所需的全部元数据。程序集清单可以存储在具 有 Microsoft 中间语言 (MSIL) 代码的 PE 文件(.exe 或 .dll)中,也可存储在只包含程序
2011-07-12 10:30:16 1391
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人