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;
    }
  • 相关阅读:
    PAT-1057 Stack (树状数组 + 二分查找)
    PAT-1056 Mice and Rice (分组决胜问题)
    PAT-1080 Graduate Admission (结构体排序)
    PAT-1079 Total Sales of Supply Chain (树的遍历)
    PAT-1078 Hashing (散列表 二次探测法)
    PAT-1018 Public Bike Management(dijkstra + dfs)
    C语言qsort()函数的实现
    简说Python之Jupyter Notebook
    简说Python之ipython的pdb调试
    简说Python之flask-SQLAlchmey的web应用
  • 原文地址:https://www.cnblogs.com/SDUTYST/p/2598924.html
Copyright © 2011-2022 走看看