c语言函数库-第七章(其它函数)

2026/4/28 23:16:07

The array that is after sort -5 1 2 3 6 7 9 12 16 30

注意:

1、关于用户提供的比较函数:

qsort函数需要用户提供一个比较搜索函数。该函数由qsort函数调用,并向该比较搜索函数传递两个指针参数a和b。用户定义的比较函数必须在ab时返回1。这里的大于、小于、等于,完全由用户来定义。本例程中定义的大于、小于、等于就是数学上的大于、小于、等于。

2、快速排序简介:

快速排序是一种经典的高效排序算法。它是取待排序列中某个元素为基准,按照该元素值的大小将整个序列划分为左右两个子序列,其中左子序列的值小于或等于基准元素的值;右子序列的值大于或等于基准元素的值。然后分别对两个子序列重复上述排序过程,直至所有元素都排在相应位置为止。

有关快速排序算法的详细介绍,请参看数据结构、算法分析等书目。

10. realloc:重新分配主存函数

函数原型:void *realloc(void *ptr, unsigned newsize) 头文件:#include 是否是标准函数:是

函数功能:重新分配内存空间。第一个参数ptr为一个指针,它指向重新设定大小的块;第二个参数newsize为重新分配内存的字节大小。

返回值:分配成功,则返回修改块的指针,否则返回NULL。 例程如下: 利用函数realloc重新分配内存空间

#include main() {

int *sqlist,i,len; len=10;

sqlist=(int *)malloc(len*sizeof(int)); for(i=0;i<20;i++) {

if(i>=len){

len=len*2;

sqlist=realloc(sqlist,len*sizeof(int)); }

sqlist[i]=i; }

for(i=0;i<20;i++) printf(\}

例程说明:

(1)本例程首先分配一个只有10个整型数据大小的内存空间。

(2)然后通过程序向该数组输入20个整数。在这里要加一个判断,即当输入的数据超过原来分配的内存空间的长度时,调用realloc函数将内存重新分配,大小为上一次长度的2

倍。这样第i次调用realloc函数时分配的内存长度为10*2i个整型变量长度。

(3)最后打印这20个整数。 本例程的运行结果为:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

注意:

1、realloc函数的作用实际上分为两步,一是在内存中重新开辟指定大小空间;二是将原内存空间的数据复制到新开辟的空间中(这是在新分配的内存比原内存大的情况下)。

2、如果新分配的内存比原内存小,则新分配的内存单元不被初始化。 3、realloc函数多用于动态顺序表这种数据结构的建立。


c语言函数库-第七章(其它函数).doc 将本文的Word文档下载到电脑
搜索更多关于: c语言函数库-第七章(其它函数) 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219