zoukankan      html  css  js  c++  java
  • POJ 1007 DNA Sorting

    题意:给出 m 个长度都为 n 的字符串,按照逆序数的大小排序输出;

    简单的排序题,逆序数的计算,qsort练习;

    求逆序数有好的方法(O(n)),这里直接算也是0MS。

    # include <stdio.h>
    
    typedef struct {
        char s[51];
        int w, id;
    }DNA;
    
    int m, n;
    DNA a[101];
    
    int DNA_cmp(const void *x, const void *y)
    {
        int tmp = (*(DNA*)x).w - (*(DNA*)y).w;
        if (tmp < 0) return -1;
        if ((tmp == 0 && (*(DNA*)x).id < (*(DNA*)y).id)) return -1;
        return 1;
    }
    
    int compute(char *s)
    {
        int i, j, ret;
        
        ret = 0;
        for ( i = 0; i < n; ++i)
        {
            for ( j = i + 1; j < n; ++j)
                if (s[i] > s[j]) ++ret;
        }
        return ret;
    }
    
    int main()
    {
        int i, j;
        
        while (~scanf("%d%d", &n, &m))
        {
            for ( i = 1; i <= m; ++i)
            {
                a[i].id = i;
                scanf("%s", a[i].s);
                a[i].w = compute(a[i].s);
            }
            
            qsort(a+1, m, sizeof(DNA), DNA_cmp);
            
            for ( i = 1; i <= m; ++i)
                puts(a[i].s);
        }
        
        return 0;
    }
  • 相关阅读:
    单向绑定和双向绑定
    Vue
    事件处理
    网关
    同时加载多个配置集
    Nacos Group方案
    DataID方案
    maven_provided说明
    C#大数据导入-SqlBulkCopy
    https://webyog.com/product/monyog/
  • 原文地址:https://www.cnblogs.com/JMDWQ/p/2453415.html
Copyright © 2011-2022 走看看