在C语言的库函数中就有快速排序的库函数,即为qsort
来源:互联网 发布:windows编程视频下载 编辑:程序博客网 时间:2024/05/16 01:21
在C语言的库函数中就有快速排序的库函数,即为qsort, 其用法如下:
结果为: 结果为: 结果为:
功 能: 快速排序
头文件:stdlib.h
用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
参数:
1 待排序数组首元素的地址
2 数组中待排序元素数量
3 各元素的占用空间大小
4 指向函数的指针,用于确定排序的顺序
示例程序如下:
- #include <stdio.h>
- #include <stdlib.h>
- int compInc(const void *a, const void *b)
- {
- return *(int *)a - *(int *)b;
- }
- int compDec(const void *a, const void *b)
- {
- return *(int *)b - *(int *)a;
- }
- int main()
- {
- int a[5] = {11,2,13,4,7};
- int b[5] = {11,2,13,4,7};
- int len = 5;
- int i;
- printf("递增排序结果:\n");
- qsort(a, len, sizeof(a[0]), compInc);
- for(i = 0; i < len; i ++)
- {
- printf("%d ", a[i]);
- }
- printf("\n\n");
- printf("递减排序结果:\n");
- qsort(b, len, sizeof(b[0]), compDec);
- for(i = 0; i < len; i ++)
- {
- printf("%d ", b[i]);
- }
- printf("\n");
- return 0;
- }
递增排序结果:
2 4 7 11 13
递减排序结果:
13 11 7 4 2
下面,继续看qsort的一些用法:
2 4 7 11 13
递减排序结果:
13 11 7 4 2
下面,继续看qsort的一些用法:
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define M 12
- #define N 20
- int compareInc(const void *a, const void *b)
- {
- return strlen((char *)a) - strlen((char*)b);
- }
- int compareDec(const void *a, const void *b)
- {
- return strlen((char *)b) - strlen((char*)a);
- }
- int main(void)
- {
- int i;
- char s[M][N]=
- {
- "January",
- "February",
- "March",
- "April",
- "May",
- "June",
- "July",
- "August",
- "September",
- "October",
- "November",
- "December"
- };
- qsort(s, M, sizeof(char) * N, compareInc);
- for(i = 0;i < M; i++)
- printf("%s\n", s[i]);
- printf("\n");
- qsort(s, M, sizeof(char) * N, compareDec);
- for(i = 0;i < M; i++)
- printf("%s\n", s[i]);
- return 0;
- }
May
July
June
March
April
August
October
January
December
November
February
September
September
February
November
December
October
January
August
April
March
June
July
May
结果为:
July
June
March
April
August
October
January
December
November
February
September
September
February
November
December
October
January
August
April
March
June
July
May
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define M 12
- #define N 20
- int compare1(const void *a, const void *b)
- {
- return *(char *)a - *(char*)b;
- }
- int compare2(const void *a, const void *b)
- {
- return *(char *)b - *(char*)a;
- }
- int main(void)
- {
- int i;
- char s[M][N]=
- {
- "January",
- "February",
- "March",
- "April",
- "May",
- "June",
- "July",
- "August",
- "September",
- "October",
- "November",
- "December"
- };
- qsort(s, M, sizeof(char) * N, compare1);
- for(i = 0;i < M; i++)
- printf("%s\n", s[i]);
- printf("\n");
- qsort(s, M, sizeof(char) * N, compare2);
- for(i = 0;i < M; i++)
- printf("%s\n", s[i]);
- return 0;
- }
April
August
December
February
July
June
January
March
May
November
October
September
September
October
November
May
March
June
July
January
February
December
August
April
好,欣赏最后一个qsort程序:
August
December
February
July
June
January
March
May
November
October
September
September
October
November
May
March
June
July
January
February
December
August
April
好,欣赏最后一个qsort程序:
- #include <stdio.h>
- #include <stdlib.h>
- #define N 6
- typedef struct
- {
- char name[15];
- int score;
- }Student;
- int compare1(const void *a,const void *b)
- {
- return ((Student*)a)->score - ((Student*)b)->score;
- }
- int compare2(const void *a,const void *b)
- {
- return *(((Student*)a)->name) - *(((Student*)b)->name);
- }
- void print(Student s)
- {
- printf("%-15s : %d\n", s.name, s.score);
- }
- int main()
- {
- Student s[N] =
- {
- "Zhang San", 94,
- "Li Si", 80,
- "You", 94,
- "I", 100,
- "He", 72,
- "She", 60
- };
- int i;
- qsort(s, N, sizeof(Student), compare1);
- for(i = 0; i < N; i++)
- {
- print(s[i]);
- }
- printf("\n");
- qsort(s, N, sizeof(Student), compare2);
- for(i = 0; i < N; i++)
- {
- print(s[i]);
- }
- return 0;
- }
She : 60
He : 72
Li Si : 80
You : 94
Zhang San : 94
I : 100
He : 72
I : 100
Li Si : 80
She : 60
You : 94
Zhang San : 94
He : 72
Li Si : 80
You : 94
Zhang San : 94
I : 100
He : 72
I : 100
Li Si : 80
She : 60
You : 94
Zhang San : 94
0 0
- 在C语言的库函数中就有快速排序的库函数,即为qsort
- 快速排序库函数qsort的使用
- 调用库函数进行的qsort快速排序
- c语言快速排序的库函数整理
- C语言标准库函数qsort排序的介绍与使用
- C语言标准库函数qsort排序的介绍与使用
- C语言标准库函数qsort排序的介绍与使用
- C语言标准库函数qsort排序的介绍与使用
- C语言中库函数自带的排序函数qsort
- C语言标准库函数qsort排序的介绍与使用
- C语言标准库函数qsort排序的介绍与使用
- C语言标准库函数qsort排序的介绍与使用
- C语言标准库函数qsort排序的介绍与使用
- C语言标准库函数qsort排序的介绍与使用
- C语言的比较库函数--qsort
- c语言调用库函数qsort()进行快速排序
- 如何利用C语言中的qsort库函数实现快速排序?
- c语言调用库函数qsort()进行快速排序
- 九度OJ 1163:素数 (素数)
- 王爽 汇编语言 实验9:显示解答
- java线程同步方法
- jquery UI 隐藏关闭按钮
- CodeBlocks常用操作快捷键
- 在C语言的库函数中就有快速排序的库函数,即为qsort
- iOS开发--OC对象模型你必须知道的几条规则
- 对话框形式的activity
- 九度OJ 1164:旋转矩阵 (矩阵运算)
- matlab 2014a的入门学习(1)周总结
- [Leetcode]3Sum Closest
- 从头认识java-4.2 方法重载
- 博客开通第一天
- Windows脚本符号总结