【C语言】使用回调函数实现一个通用的冒泡排序,可以排序不同的数据类型。
来源:互联网 发布:散打软件下载 编辑:程序博客网 时间:2024/05/20 12:47
//使用回调函数实现一个通用的冒泡排序,可以排序不同的数据类型。#include <stdio.h>#include <stdlib.h>#include <string.h>void swap(char *p1, char *p2, int size){int i = 0;char tmp = 0;for (i = 0; i<size; i++){tmp = *(p1 + i);*(p1 + i) = *(p2 + i);*(p2 + i) = tmp;}}//比较整数的回调函数。int compare_int(const void *elem1, const void *elem2){return (*(int *)elem1) - (*(int *)elem2);}//比较字符串的回调函数。int compare_str(const void *elem1, const void *elem2){return strcmp((char *)(*(int *)elem1), (char *)(*(int *)elem2));}void bubble_str_int(void *base, int size, int width, int(*cmp)(const void *elem1, const void *elem2)){int i = 0;int j = 0;for (i = 0; i<size - 1; i++){for (j = 0; j<size - i - 1; j++){if (cmp(((char *)base + (j*width)), ((char *)base + (j + 1)*width))<0){swap((char *)base + (j*width), (char *)base + (j + 1)*width, width);}}}}int main(){char *arr_str[] = { "love","you","我","欢","喜" };int arr_int[] = { 1,3,5,7,9,2,4,6,8,10 };int i = 0;int size_int = sizeof(arr_int) / sizeof(arr_int[0]);int size_str = sizeof(arr_str) / sizeof(arr_str[0]);bubble_str_int(arr_int, size_int, sizeof(arr_int[0]), compare_int);printf("bubble_sort int:\n");for (i = 0; i<size_int; i++){printf("%d ", arr_int[i]);}printf("\n");bubble_str_int(arr_str, size_str, sizeof(arr_str[0]), compare_str);printf("bubble_sort string:\n");for (i = 0; i<size_str; i++){printf("%s\n", arr_str[i]);}system("pause");return 0;}
阅读全文
1 0
- 【C语言】使用回调函数实现一个通用的冒泡排序,可以排序不同的数据类型。
- 使用回调函数实现一个通用的冒泡排序,可以排序不同的数据类型。
- 【C语言】 使用回调函数实现冒泡排序
- 回调函数实现通用冒泡排序
- 【C语言】【笔试题】使用回调函数编写冒泡排序,可以排序整形数组,也可以排序字符串
- 利用回调函数实现通用冒泡排序
- 通用冒泡排序(回调函数)
- 回调函数实现冒泡法的多种排序
- 【C++】通过模板实现一个通用的冒泡排序
- c++::写一个通用的冒泡排序
- C语言冒泡排序之回调函数设计
- 通过冒泡排序(C语言实现)学习回调函数设计原理
- 使用回调函数实现qsort(冒泡排序)
- 回调函数实现冒泡排序
- 回调函数实现冒泡排序
- 用回调函数实现冒泡排序
- 用回调函数实现冒泡排序
- C语言~模拟实现通用冒泡排序
- 小可爱 java实训课程06 jdbc
- 96Boards MIPI CSI Camera Mezzanine
- 流式数据中的数学统计量计算
- 完成一个登录程序
- javascript学习日记——(3)
- 【C语言】使用回调函数实现一个通用的冒泡排序,可以排序不同的数据类型。
- XSLT的参数绑定,变量和调用参数的文章
- PCIe/SMMU ATS analysis note
- AndroidSDK目录结构介绍
- 音视频编码中的几种常见容器介绍
- jquery 限制文本框只能输入数字
- 股票基本知识
- java语言中关于抽象类和接口的区别
- 冒泡排序和选择排序