摘要:
原文基数(radix)树Linux基数树(radix tree)是将指针与long整数键值相关联的机制,它存储有效率,并且可快速查询,用于指针与整数值的映射(如:IDR机制)、内存管理等。IDR(ID Radix)机制是将对象的身份鉴别号整数值ID与对象指针建立关联表,完成从ID与指针之间的相互转换... 阅读全文
摘要:
#include#includetypedef int ElementType;#define Cutoff (3)void swap(int *a,int *b){ int temp=*a; *a=*b; *b=temp;}void WithSentrySort(ElementT... 阅读全文
摘要:
注:本篇内容为翻译,之所以选择这篇进行翻译原因是该文章含有动画,能够更加直观地展示快速排序。同时,可以仔细看一下代码,代码中把结构化的思想给予了更加充分地表现。按照功能进行模块划分的思想得到了彻底地贯彻。以下内容翻译自:http://cprogramminglanguage.net/quicksor... 阅读全文
摘要:
归并排序算法实现:#include#include#define FatalError( Str ) fprintf( stderr, "%s\n", Str ), exit( 1 )typedef int ElementType;void Merge(ElementType A[],Eleme... 阅读全文
摘要:
可以用数组名作函数参数,此时实参与形参都应用数组名(或指针变量)。例2:有一个一维数组score,内放10个学生成绩,求平均成绩。float average(float array[10]){int i;float aver,sum=array[0];for(i=1; i<10; i++)sum=s... 阅读全文
摘要:
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。... 阅读全文
摘要:
首先回答这个的问题:严格的说不等于数组,但是可以认为它是个数组一样的使用而不产生任何问题。不过既然这样,那它应该算是个数组吧。所以,一般我们都用“动态数组”这种名字来称呼这种东西。要讲清楚这个东西,涉及到malloc函数,指针类型和“[ ]”下标运算。======分割线[0]======malloc... 阅读全文
摘要:
早上用codeblocks编译一个c文件,出现这样一个编译错误:+'for'+loop+initial+declarations+are+only+allowed+in+C99+mode 原来codeblocks的gcc默认不以c99标准编译c文件,需要设置一下,具体如下:1. 在Settings... 阅读全文
摘要:
堆排序 堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=... 阅读全文