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;
    }
  • 相关阅读:
    PHP函数include include_once require和require_once的区别
    PHP替换回车换行的三种方法
    PHP获取绝对路径dirname(__FILE__)和__DIR__比较
    jQuery实现倒计时重新发送短信验证码功能示例
    js人民币转大写
    js前端数据验证JS工具
    安卓动画学习笔记
    ActivityNotFoundException: No Activity found to handle Intent
    Android笔记
    再次踩bug:遍历删除list(java.util.ConcurrentModificationException)
  • 原文地址:https://www.cnblogs.com/SDUTYST/p/2598924.html
Copyright © 2011-2022 走看看