• 43. 为基本排序函数加上回调功能,练习回调函数,


    //在基本的选择排序函数的基础之上,加上回调机制,实现回调函数
    
    
    //旧方式
    #include <stdio.h>
    void selectSortByUp(int *p,int n)//从小到大排序
    {
        int i,j;
        for(i = 0;i<n-1;i++)
        {
            for(j = i+1;j<n;j++)
            {
                if(p[i] > p[j])
                {
                    p[i] = p[i]^p[j];
                    p[j] = p[i]^p[j];
                    p[i] = p[i]^p[j];
                }
            }
        }
    }
    
    void selectSortByDown(int *p,int n)//从大到小排序
    {
        int i,j;
        for(i = 0;i<n-1;i++)
        {
            for(j = i+1;j<n;j++)
            {
                if(p[i] < p[j])
                {
                    p[i] = p[i]^p[j];
                    p[j] = p[i]^p[j];
                    p[i] = p[i]^p[j];
                }
            }
        }
    }
    
    
    int main(void)
    {
        int arr[10] = {6,5,4,3,2,1,7,8,9,0};
        int i;
        selectSortByDown(arr,10);
        for(i= 0;i<10;i++)
        {
            printf("%d
    ",arr[i]);
        }
        putchar(10);
    
        selectSortByDown(arr,10);
        for(i= 0;i<10;i++)
        {
            printf("%d
    ",arr[i]);
        }
        putchar(10);
        return 0;
    }

    添加回调接口,实现回调函数。

    #include <stdio.h>
    
    int callBackCompare(int a,int b)
    {
        return a<b?1:0; //return a>b?1:0;
    }
    
    void selectSort(int *p,int n,int(*pf)(int,int))//从大到小排序
    {
        int i,j;
        for(i = 0;i<n-1;i++)
        {
            for(j = i+1;j<n;j++)
            {
                if(pf(p[i],p[j]))
                {
                    p[i] = p[i]^p[j];
                    p[j] = p[i]^p[j];
                    p[i] = p[i]^p[j];
                }
            }
        }
    }
    
    int main(void)
    {
        int arr[10] = {6,5,4,3,2,1,7,8,9,0};
        int i;
        selectSort(arr,10,callBackCompare);
        for(i= 0;i<10;i++)
        {
            printf("%d
    ",arr[i]);
        } 
        putchar(10); 
        
        return 0;
    }

    //与上面这个对比一下,下面的为普通的间接调用。

    #include <stdio.h>
    int callBackCompare(int a,int b)
    {
        return a<b?1:0;
    }
    void selectSort(int *p,int n)//从大到小排序
    {
        int i,j;
        for(i = 0;i<n-1;i++)
        {
            for(j = i+1;j<n;j++)
            {
                if(callBackCompare(p[i],p[j]))
                {
                    p[i] = p[i]^p[j];
                    p[j] = p[i]^p[j];
                    p[i] = p[i]^p[j];
                }
            }
        }
    }
    
    int main(void)
    {
        int arr[10] = {6,5,4,3,2,1,7,8,9,0};
        int i;
        selectSort(arr,10);
        
        return 0;
    }
  • 相关阅读:
    关于爬虫urllib.request模块、urllib.parse模块的基础使用
    爬取小视频网站视频并下载——场库网站视频批量下载
    关于json接口返回的数据不是json格式的处理方法——正则匹配
    存储型XSS靶场作业
    MSSQL-反弹注入
    显错注入四关
    课时53.video标签(掌握)
    课时50.51表单练习(理解)
    课时49.非input标签(掌握)
    课时48.表单标签-H5(了解)
  • 原文地址:https://www.cnblogs.com/ZhuLuoJiGongYuan/p/9512179.html
Copyright © 2020-2023  润新知