快排函数的使用语法
以對整型數組排序為例:
頭文件
#include<stdlib.h>
函數體
intcmp(const void *a, const void *b)
{
return(*(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; }
轉載于:https://www.cnblogs.com/cszlg/archive/2012/03/22/2910533.html
總結
- 上一篇: C语言实现-双链表练习
- 下一篇: WinForm编程数据视图之DataGr