memset
void *memset(void *s, int ch, size_t n);
<memory.h>或<string.h>
主要作用,对较大的结构组或数组清零或赋初值(0); 原文拓展
rand
void srand(unsigned seed);
int rand(void);
<stdlib.h>
time(NULL) 的结果是一个类似于 1524655706 的数字,并且每秒都在递增 1,也就达成了 srand() 的 seed
不断变化的目的,不断生成新的随机数。
<time.h>
主要作用:
srand+time(0)提供随机种子
rand生成随机数
因为,对于任意数,0<=rand()%(n-m+1)<=n-m
因此,0+m<=rand()%(n-m+1)+m<=n-m+m
因此,如要产生[m,n]范围内的随机数num,
可用:int num=rand()%(n-m+1)+m;原文拓展
qsort
void qsort(void* base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*));
<stdlib.h>
根据二分法写的,其时间复杂度为n*log(n))
功能: 使用快速排序例程进行排序.
各参数:
base : 待排序数组首地址,通常该位置传入的是一个数组名
num: 该数组的元素个数
width: 该数组中每个元素的大小(字节数)
(*compare)(const void *, const void *) : 此为指向比较函数的函数指针,决定了排序的顺序。正序或倒序。
//C语言
//compare的创建
int compare(const void* min,const void* max) {
return (*(int*)max > *(int*)min);//从大到小
}
//这是一个 int 类型的函数。你需要根据数组的类型来修改这个函数的类型
!!!!正确编写compare函数是实现qsort主要的环节 !!!!
assert
void assert( int expression );
<assert.h>
assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。原文拓展