快排函数的使用语法

原创 2012年03月22日 15:15:49


以对整型数组排序为例:


头文件

#include<stdlib.h>


函数体

intcmp(const void *a, const void *b)
{
r
eturn(*(int *)a-*(int *)b);

主函数

void main()

{ .int s[100];

 qsort(s,n,sizeof(s[0]),cmp);}

PS:

1、如果排序的是字符型数组

则在函数体内return(*(int *)a-*(int *)b); 改成 return(*(char *)a-*(char*)b); 

其他类型同理


2、要对其从s[i]开始的m个元素进行排序,只需要在第一个和第二个参数上进行一些修改:qsort(&s[i],m,sizeof(s[i]),cmp);

代码示例:

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int comp(const void *a,const void *b);//函数声明

int main( )
{
   int i;
   int a[10]={21,56,78,12,36,58,69,44,23,11};
  
     
   qsort( a, 10, sizeof(int),comp);//调用qsort(),其中第一个参数是数组名字,第二个参数是数组元素个数,
                                  //第三个参数是元素所占字节数,第四个是比较方式

  
   for( i = 0; i < 10; ++i )
      printf( " %d  ", a[i] );
   printf( "\n" );
   return 0;
}

int comp(const void* a,const void* b)//定义数据的比较方式是从小到大排序。
{
   int *x=(int *)a;
   int *y=(int *)b;
   return *x-*y;
} 


快排函数qsort调用的使用细则

快速排序库函数qsort调用细则 2010/06/16 09:20 P.M.                             来源于:http://wenku.baidu.com/vi...

快排函数的使用

快速排序库函数qsort调用细则 2010/06/16 09:20 P.M.                             来源于:http://wenku.baid...

快排函数qsort调用的使用细则

来源于:http://wenku.baidu.com/view/3567c018964bcf84b9d57b2f.html 关于快排,其原理及实现网上可以找到很多,我给出的那些动画视频链接里...

快排和归并算法比较之swap函数

前些日做作业 随机产生数据然后分别用用快排和归并算法排序 比较时间 最后发现快排一直比归并慢 不得其解 后有人提点 由于我的快排交换两数的时候用到了自己的swap函数 所以才出现这种情况...

快排中partition函数的优化

最近在看算法,发现patition函数可以有个比较简单的写法 ,因此写下来以后用得到: // arr[]为数组,start、end分别为数组第一个元素和最后一个元素的索引 // povitIndex...

关于几种类型的快排函数的说明

qsort的写法如下: qsort(s,n,sizeof(s[0]),cmp); 其中第一个参数是的参与排序的数组名(或者可以理解成开始排序的地址) 这样的表达式,第二个参数是参与排序的元素个数...

(队列思想+快排函数)—keke祝你元宵节快乐!

think: 1题目首先输入一个字符串,然后根据6的位置可以把其前面的符合要求的字符串存放在一个队列里,当遇到6时候判断队列是否为空,若不为空则可以将其转化为实数存放在整型数组里面,以上只是6位于字...

快排函数详解

本文由楓林の寒贡献 int cmp(const void *a, const void *b) 返回正数就是说 cmp 传入参数第一个要放在第二个后面, 负数就是传入参数第一个要放第二个前面, 如...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:快排函数的使用语法
举报原因:
原因补充:

(最多只允许输入30个字)