回调函数的简单应用
来源:互联网 发布:淘宝旺旺位置设置 编辑:程序博客网 时间:2024/06/09 04:15
有关回调函数及排序算法基础的题目;通过控制函数实现排序方法的选择从而做到排序;为简单期间数组的自定义输入部分省略本人萌新,刚学十天,还望大佬们多多指教,有更好的方法希望可以指点(鞠躬!请留言哦,跪谢)。
#include<stdio.h>//方便起见数组全部采用了整型,望见谅/*函数功能:实现中间控制参数:整型数组名、整型数组长度、空调用的回调函数(两种排序算法,内部为整型指针和整型长度)、空输出函数返回值:无返回值*/void data_sort(int data[],int len,void(*p)(int*,int), void(*out)(int*,int)){ p(data,len);//选择方法的调用 out(data,len);//输出函数的调用}/*函数功能:冒泡排序参数:整型的指针类型数组地址、整型数组长度返回值:无返回值*/void bubble_sort(int* arr,int len){ int i = 0; int j = 0; int* p = arr; for(i = 0;i < len - 1;i++){ for(j = 0;j < len - 1 - i;j++){ if(*(p + j) > *(p + j + 1)){ int tmp = 0; tmp = *(p + j); *(p + j) = *(p + j + 1); *(p + j + 1) = tmp; } } }}/*函数功能:选择排序参数:同冒泡返回值:无返回值*/void selection_sort(int* arr,int len){ int i = 0; int j = 0; int* p = arr; int pos = 0; for(i = 0;i < len - 1;i++){ pos = i; for(j = i + 1;j < len;j++){ if(p[pos] > p[j]){ pos = j; } } if(pos != i){ int tmp = 0; tmp = *(p + i); *(p + i) = *(p + pos); *(p + pos) = tmp; } }}/*函数功能:实现数组的遍历输出参数:整型指针类型的数组地址、整型的长度返回值:无返回值*/void out_arr(int* p,int len){ int i = 0; for(i = 0;i < len;i++){ printf("%4d",*(p + i)); } printf("\n");}int main(void){ int arr[] = {1,2,3,4,9,8,5};//定义数组 int n = sizeof(arr) / 4;//计算数组长度 data_sort(arr,n,bubble_sort,out_arr);//调用控制函数实现冒泡 int arr1[] = {3,2,5,6,8,9,1}; n = sizeof(arr1) / 4; data_sort(arr1,n,selection_sort,out_arr);//调用控制函数实现选择 return 0;}
阅读全文
0 0
- 回调函数的简单应用
- 回调函数的简单应用
- 回调函数简单应用
- Python3之爬虫中回调函数的简单应用
- 回调函数的应用
- 回调函数的应用
- 回调函数的应用
- 回调函数的应用
- 简单的回调函数
- 什么是回调函数?回调函数的简单实现。
- 回调函数应用
- C#回调函数的简单讲解与应用例子(最简单讲解,大神绕道)
- Flex 回调函数的应用
- JS回调函数的应用
- 回调函数的分析及应用
- 回调函数的分析及应用
- TLS回调函数的应用
- WorkDay 30 :回调函数的应用
- 设计模式-行为-迭代器
- C++双冒号::
- Python中获取异常(Exception)信息
- bzoj 4318: OSU!(概率DP)
- Java程序员从笨鸟到菜鸟之(四)练习
- 回调函数的简单应用
- 设计模式-行为-中介者
- Java七种排序算法教程
- Python 访问私有变量和私有方法
- 【图像处理】MATLAB:频域处理
- codeforces 869A The Artful Expedient
- 剑指Offer题目1519:合并两个排序的链表
- 第二十二课(一)、高级SQL特性
- LeedCode ZigZag Conversion