zoukankan      html  css  js  c++  java
  • zoj 2132 the most frequent number

    the  most frequent number

    CE: Gcc注释 用/**/

    MLE: 快排 取中位数

    /*zoj 2132 the most frequent number
    quick sort
    */
    # include <stdio.h>
    # include <stdlib.h>
    # define MAXN 250005

    int compare (const void * a, const void * b)
    {
    return ( *(int*)a - *(int*)b );
    }
    int main()
    {
    int a[MAXN];
    int L, i;
    while (scanf("%d", &L)==1)
    {
    for (i=0; i<L; ++i)
    scanf("%d", &a[i]);
    qsort(a, L, sizeof(int), compare);
    printf("%d\n",a[L/2]);
    }
    return 0;
    }

    看了别人的代码,

    /*
    from 百度空间 kobeddshow
    http://hi.baidu.com/kobeddshow/blog/item/26bc91ad166ba09246106439.html
    */
    # include<stdio.h>
    int main()
    {
    int n,a,i,ans,k;
    while(scanf("%d",&n) != EOF )
    {
    k = 0;
    for(i=0; i<n; i++)
    {
    scanf("%d",&a);
    if (k == 0) ans=a, k=1;
    else if(ans == a) ++k;
    else --k;
    }
    printf("%d\n",ans);
    }
    return 0; /*没有这一行,提示程序非零退出 */
    }

    这个方法充分利用了要求的数比总数一半还多这个条件:只有比一半多,才能保证保留要求的ans,比一半少一个都不行。
    看书算法技巧方面的不够多,做题也是刚开始,要坚持不懈!

    TLE: 自定义快排 取中位数

    View Code
    /*zoj 2132 the most frequent number
    quick sort
    */
    # include <stdio.h>
    # include <stdlib.h>
    # define MAXN 250005
    void quick_sort(int *a, int left, int right);
    int main()
    {
    int a[MAXN];
    int L, i;
    while (scanf("%d", &L)==1)
    {
    for (i=1; i<=L; ++i)
    scanf("%d", &a[i]);
    quick_sort(a, 1, L);
    printf("%d\n",a[L/2+1]);
    }
    return 0;
    }
    void quick_sort(int *a, int left, int right)
    {
    int tmp, i, last;
    if (left >= right) return;
    tmp = a[left];
    a[left] = a[(left+right)>>1];
    a[(left+right)>>1] = tmp;
    last = left;
    for (i = left+1; i <= right; ++i)
    if (a[i]<a[left] && (++last)!=i) /*短路*/
    {
    tmp = a[last];
    a[last] = a[i];
    a[i] = tmp;
    }
    tmp = a[last];
    a[last] = a[left];
    a[left] = tmp;
    quick_sort(a, left, last-1);
    quick_sort(a,last+1, right);
    }
  • 相关阅读:
    jQuery
    写日志文件
    游标
    jdk与jre的区别
    八段锦练习口诀及作用
    语音网关FXO与FXS的工作原理 FXO与FXS区别
    office 2007安装后右键单击新建没有快捷方式问题解决方法
    什么是STUN?
    【引】[翻译]Irrlicht引擎里的冲突检测与响应
    [原创]IrrLicht中MS3D模型骨骼动画支持bug的排除
  • 原文地址:https://www.cnblogs.com/JMDWQ/p/2357625.html
Copyright © 2011-2022 走看看