C语言对磁盘文件进行快速排序简单实例
快速排序(quick sort)是由C.A.R.Hoare发明并命名的,这种排序被认为是目前最好的一种排序算法。快速排序基于交换排序,与同样的基于交换排序的冒泡排序法相比,其效果非常明显。
它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
本例中快速排序是通过函数quick_disk(FILE* fp,int count)中反复调用排序函数qs_disk(FILE* fp,int left,int right)实现快速排序。在qs_disk()中,通过函数get_name(fp,(long)(i+j)/2)返回中间值作为比较数进行快速排序。
下面是具体的源代码:
#include #include #include #define NUM 4
struct data
{
char name[20];
char school[20];
char city[20];
char province[20];
}info;
struct data addrs[NUM]=
{
"OKBase","BIT","JiLin","JiLin",
"TongWei","BIT","ZhengJiang","JiangSu",
"SunYou","BIT","WeiF