zoukankan      html  css  js  c++  java
  • c语言快速排序的库函数整理

    这些库函数都是在平时编程中经常调用的快排函数
    View Code
    以下所介绍的所有排序都是从小到大排序
    快速排序的库函数都包含在头文件名为<stdlib.h><1>对int型数组排序
    int num[100];
    int cmp(const void *a,const void *b)
    {
        return *(int *)a-*(int *)b;
    }
    int main()
    {
        ......
            qsort(num,100,sizeof(num[0]),cmp);
        return 0;
    }
    <2>对char型数组排序
    char st[100];
    int cmp(const void *a,const void *b)
    {
        return *(char *)a-*(char *)b;
    }
    int main()
    {
        ......
            qsort(st,100,sizeof(st[0]),cmp);
        return 0;
    }
    <3>对double型数组排序
    double f[100];
    int cmp(const void *a,const void *b)
    {
        return ((*(double *)a-*(double *)b>0)?1:-1);
    }
    int main()
    {
        ......
            qsort(f,100,sizeof(f[0]),cmp);
        return 0;
    }
    <4>对结构体排序
    struct node
    {
        double data;
        int flag;
    }f[100];
    int cmp(const void *a,const void *b)
    {
        return (((struct node *)a)->data>((struct node *)b)->data?1:-1);
    }
    int main()
    {
        ......
            qsort(f,100,sizeof(f[0]),cmp);
        return 0;
    }
    <5>对结构体的二级排序
    struct node
    {
        double data;
        int flag;
    }f[100];
    int cmp(const void *a,const void *b)
    {
        if(((struct node *)a)->data != ((struct node *)b)->data)
            return (((struct node *)a)->data > ((struct node *)b)->data?1:-1);
        else
            return (((struct node *)a)->flag-((struct node *)b)->flag);
    }
    int main()
    {
        ......
            qsort(f,100,sizeof(f[0]),cmp);
        return 0;
    }
    <6>对字符串数组的排序
    int st[100];
    int cmp(const void *a,const void *b)
    {
        return strcmp((char *)a,(char *)b);//根据字典序进行比较排序
    }
    int main()
    {
        ......
            qsort(st,100,sizeof(st[0]),cmp);
        return 0;
    }
    <7>对指针数组的排序
    char *s[100];//定义一个指针的数组
    int cmp(const void *a,const void *b)
    {
        return (strcmp(*(char**)a,*(char**)b));//这里用char**表示指针的指针
    }
    int main()
    {
        ......
        qsort(s,100,sizeof(s[0]),cmp);
        return 0;
    }
  • 相关阅读:
    DMA详解
    Python实现爬虫设置代理IP和伪装成浏览器的方法(转载)
    Python3 简单验证码识别思路及实例
    Python3 比较两个图片是否类似或相同
    python3 验证码图片切割
    python3 验证码去噪
    Python3 OpenCV应用
    python3 IEDriver抓取时报数据
    Impala 数值函数大全(转载)
    java 获取指定日前的前一天
  • 原文地址:https://www.cnblogs.com/SDUTYST/p/2598924.html
Copyright © 2011-2022 走看看