• sort和qsort一些用法的总结


    来自一位学长

    qsort排序(从大到小)

    #include <stdlib.h>
    #include <stdio.h>
    int a[105];
    int cmp(const void *x,const void *y)
    {
        return (*(int*)x)>(*(int*)y);
    }
    int main()
    {
        int i, j;
        a[0]=8,a[1]=1, a[2]=3, a[3]=-3;
        qsort(a,4,sizeof(a[0]),cmp);
        for(i=0;i<=3;i++) printf("%d
    ",a[i]);
        return 0;
    }

    qsort对结构体排序

    #include<algorithm>
    #include<cstring>
    #include<string>
    #include<cstdio>
    #include<stdlib.h>
    using namespace std;
    struct DATA
    {
        int a, b;
    } dt[1005];
    int cmp(const void *x,const void *y)
    {
        return ((DATA*)x)->a-((DATA*)y)->a;
    }
    int main()
    {
        int i;
        dt[0].a=1, dt[0].b=-1;
        dt[1].a=3, dt[1].b=-2;
        dt[2].a=-1, dt[2].b=3;
        qsort(dt,3,sizeof(dt[0]),cmp);
    	for(i=0;i<3;i++)
    		printf("%d %d
    ",dt[i].a,dt[i].b);
        return 0;
    }


    qsort对字符排序

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int cmp(const void *a,const void *b)
    {
    	return strcmp((char *)a,(char *)b);
    }
    char s[1000005][205];
    int main(void)
    {
    	int i,j,n;
    	char ch,temp[205];
    	i=j=0;
    	memset(s,0,sizeof(s));
    	memset(temp,0,sizeof(temp));
    	while(scanf("%c",&ch)!=EOF)
    	{
    		if(ch>='a'&&ch<='z') {s[i][j]=ch;j++;}
    		else if(ch>='A'&&ch<='Z') {s[i][j]=ch+32;j++;}
    		else if(j!=0) {s[i][j]='';j=0;i++;}
    	}
    	n=i+1;
    	qsort(s,i,sizeof(s[0]),cmp);
    	for(i=0;i<n;i++)
    		if(strcmp(s[i],s[i+1])!=0) printf("%s
    ",s[i]);
    	return 0;
    }


    sort对结构体排序

    #include<algorithm>
    #include<cstring>
    #include<string>
    #include<cstdio>
    #include<stdlib.h>
    using namespace std;
    struct DATA
    {
        int a, b;
    } dt[1005];
    bool cmp(DATA x,DATA y)
    {
        return x.a<y.a;
    }
    int main()
    {
        int i, j;
        dt[0].a=1, dt[0].b=-1;
        dt[1].a=3, dt[1].b=-2;
        dt[2].a=-1, dt[2].b=3;
        sort(dt,dt+3,cmp);
        return 0;
    }


    重载sort

    #include<algorithm>
    #include<cstring>
    #include<string>
    #include<cstdio>
    #include<stdlib.h>
    using namespace std;
    struct DATA
    {
        int a, b;
        bool operator<(const DATA &y)const
        {
            return a<y.a;
        }
    } dt[1005];
    int main()
    {
        int i, j;
        dt[0].a=1, dt[0].b=-1;
        dt[1].a=3, dt[1].b=-2;
        dt[2].a=-1, dt[2].b=3;
        sort(dt,dt+3);
        return 0;
    }



    版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

  • 相关阅读:
    Unity3D性能优化--- 收集整理的一堆
    Unity5.3官方VR教程重磅登场-系列7 优化VR体验
    VR沉浸体验的要求
    Unity5中叹为观止的实时GI效果
    浅谈控制反转与依赖注入[转]
    unity 使用unityaction 需要注意的问题[转]
    c# orm框架 sqlsugar
    unity Instantiate设置父级物体bug
    宝塔面板 使用mongodb注意事项
    unity中gameObject.SetActive()方法的注意事项。
  • 原文地址:https://www.cnblogs.com/xryz/p/4848094.html
Copyright © 2020-2023  润新知