C/C++ qsort()快速排序的用法
C语言中排序的算法有很多种,系统也提供了一个函数qsort()可以实现快速排序。原型如下:
void qsort(void *base, size_t nmem, size_t size, int (*comp)(const void *, const void *));
它
根据comp所指向的函数所提供的顺序对base所指向的数组进行排序,nmem为参加排序的元素个数,size为每个元素所占的字节数。例 如要
对元素进行升序排列,则定义comp所指向的函数为:如果其第一个参数比第二个参数小,则返回一个小于0的值,反之则返回一个大于0的值,如果相等,则返
回0。
例:
#include <stdio.h>
#include <stdlib.h>
int comp(const void *, const void *);
int main(int argc, char *argv[])
{
int i;
int array[] = {6, 8, 2, 9, 1, 0};
qsort(array, 6, sizeof(int), comp);
for (i = 0; i < 6; i ++) {
printf("%d\t", array[i]);
}
printf("\n");
return 0;
}
int comp(const void *p, const void *q)
{
return (*(int *)p - *(int *)q);
}
运行结果如下:
0 1 2 6 8 9
相关文档:
C/C++数组名与指针区别深层探索
作者:宋宝华 e-mail:21cnbao_AT_21cn.com [AT -> @]
1. 引言
指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多
程序设计者就被搞糊涂了。而许多的大学老师,他们在C 语言的教学过程中也错误得给学生讲解:“数 ......
extern除了能够用于声明变量,已经在外部被定义,不用重新定义和分配内存空间,还可以在C++与C进行相互函数调用方面会有很大的用处。
首先,我们来看一下,为什么C++和C语言不能相互进行函数调用:
编写如下的源文件:
int func(int i)
{
return 1;
}
&nbs ......
最近几天闲来无事,便尝试了一下用C操作数据库,下面便是我测试的具体结果:
开发环境是windows 7 ultimate(英文版) IDE 是vs 2008 professional 中文版,数据库是mysql 5.1
首先,我在MySQL库中创建了一个test表:
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT ......
Linux下通常使用免费的编译器gcc。其中gcc主要用来编译C语言代码,g++主要用来编译C++代码。如果想用gcc编译c程序,则要注意C与C++对语法要求的不同点,例如:
1) C程序是从main函数开始,C++程序是从全局变量的构造函数开始
2) 变量必须声明在语句前
3) 没有bool类型
4) 声明枚举变量是必须在枚举 ......