对于一遍遍历的众数求法

日期:2019.6.3

博客期:073

星期日

  或许你在想求众数的基本方法:

  遍历一遍找到每个数的出现次数,之后找到次数最多的那个!

  经过我们的分析,可知这个实际上是在遍历过程中,找到次数最多的数!那我们就可以采取记录次数的方法!

  

 1 package test;
 2
 3 import java.util.ArrayList;
 4 import java.util.List;
 5
 6 import my.javabean.basic.*;
 7 import my.javabean.file.FileToDealWithJavaBean;
 8 import my.javabean.sql.*;
 9 import my.javabean.sqlpackage.MySqlPackage;
10
11 @SuppressWarnings("unused")
12 public class TestForMain {
13     public static void main(String[] args) {
14         MySqlPackage msp = FileToDealWithJavaBean.getToMySql("txt/tiezi.javabean");
15         MySqlForReUnion msfru = msp.getMySql();
16         List <JavaBean> ljb = msfru.GetFromSQL();
17         int size = ljb.size();
18
19         /*
20         int a[] = new int [100];
21         for(int i=0;i<100;++i)
22             a[i] = 0;
23         for(int i=0;i<size;++i)
24         {
25             int answer = (Integer)ljb.get(i).javabean.get(1);
26             ++a[answer];
27         }
28         int point = 0;
29         for(int i=0;i<100;++i)
30             if(a[point]<a[i])
31                 point = i;
32         System.out.println(point);
33         */
34         /*
35         int point = 1;
36         int save = (Integer)ljb.get(0).javabean.get(1);;
37         for(int i=1;i<size;++i)
38         {
39             int answer = (Integer)ljb.get(i).javabean.get(1);
40             if(answer==save)
41                 ++point;
42             else
43             {
44                 --point;
45             }
46             if(point<=0)
47             {
48                 point = 1;
49                 answer = 1;
50             }
51         }
52
53         System.out.println(save);
54         */
55         /*
56         double sum = 0;
57         for(int i=0;i<size;++i)
58             sum += (Integer)ljb.get(i).javabean.get(1);
59         sum = sum / size;
60
61         int left = (int)sum;
62
63         int right = left+1;
64
65         if(sum-left>right-sum)
66             System.out.println(right);
67         else
68             System.out.println(left);
69         */
70         TestOnly();
71         msfru.free();
72     }
73 }

原文地址:https://www.cnblogs.com/onepersonwholive/p/10967073.html

时间: 2024-10-09 04:29:16

对于一遍遍历的众数求法的相关文章

【基础备忘】 二叉树前序、中序、后序遍历相互求法

转自:http://www.cnblogs.com/fzhe/archive/2013/01/07/2849040.html 今天来总结下二叉树前序.中序.后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我们分别说明. 首先,我们看看前序.中序.后序遍历的特性: 前序遍历:     1.访问根节点     2.前序遍历左子树     3.前序遍历右子树 中序遍历:     1.中序遍历左子树     2

二叉树前序、中序、后序遍历相互求法

今天来总结下二叉树前序.中序.后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我们分别说明. 首先,我们看看前序.中序.后序遍历的特性: 前序遍历:     1.访问根节点     2.前序遍历左子树     3.前序遍历右子树 中序遍历:     1.中序遍历左子树     2.访问根节点     3.中序遍历右子树 后序遍历:     1.后序遍历左子树     2.后序遍历右子树     3.访问

【转】二叉树前序、中序、后序遍历相互求法

今天来总结下二叉树前序.中序.后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我们分别说明. 首先,我们看看前序.中序.后序遍历的特性: 前序遍历:     1.访问根节点     2.前序遍历左子树     3.前序遍历右子树 中序遍历:     1.中序遍历左子树     2.访问根节点     3.中序遍历右子树 后序遍历:     1.后序遍历左子树     2.后序遍历右子树     3.访问

众数的求法

★问题描述:给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数.多重集S中重数最大的元素称为众数.例如,S={1,2,2,2,3,5}.多重集S的众数是2,其重数为3.★编程任务:对于给定的由n个自然数组成的多重集S,编程计算S的众数及其重数.★数据输入:输入数据由文件名为input.txt的文本文件提供.文件的第1行多重集S中元素个数n:接下来的n行中,每行有一个自然数.★结果输出:程序运行结束时,将计算结果输出到文件output.txt中.输出文件有2行,第1行给出众数,

众数的完整程序源代码

问题 在一个序列中出现次数最多的元素称为众数. 程序源码 完整的程序源代码如下: //先对序列进行快速排序 //再进行一次遍历 //输出众数的重复次数 点击了解完整代码!

Vijos1917 艾酱最喜欢的数字 求众数

1.题意:第一行一个数字N,表示一共有多少个数字,第二行N个数字,保证其中至少有一个数字出现次数超过一半,任务是求出这个出现最多的数. 2.分析:本题是明显的求众数的问题,一般是开一个大数组,在读入数据的同时统计数据出现的次数,最后遍历出众数,但是常规做法提交之后会MLE,因为题面上的数据范围为: 40%的数据满足(n<=100)60%的数据满足(n<=1000000),内存大小限制128Mb70%的数据满足(n<=1000000),内存大小限制3Mb100%的数据满足(n<=10

bzoj2724: [Violet 6]蒲公英(离散化+分块)

我好弱啊..这题调了2天QwQ 题目大意:给定一个长度为n(n<=40000)的序列,m(m<=50000)次询问l~r之间出现次数最多的数.(区间众数) 这题如果用主席树就可以不用处理一堆前缀和..蓝鹅我不会~T_T~. 把序列n分成sqrt(n)块,先把所有数离散化,预处理出poi[i][j]表示第i块到第j块的众数(即出现次数最多的数). 询问有两种情况: 第一种情况是l~r在某个块中,那么直接扫一遍求出众数,效率O(sqrt(n)). 第二种情况是l~r在多个块中,l在x块,r在y块,

2017/03/27学习笔记

程序的输入是指从输入文件讲数据传送给程序,程序的输出是指从程序将数据传送输出文件.C++输入输出包含以下三方面内容:对系统指定标准设备的输入和输出.即从键盘输入数据,输出到显示器.这种输入输出称为标准输入输出,简称标准IO.以外出磁盘文件为对象进行输入输出,即从磁盘文件输入数据,将数据输出到文件.以外存为对象的输入输出称为文件的输入输出,简称文件IO.度内存中指定的空间进行输入输出,通常指定一个字符串数组作为储存空间(实际上可以利用该空间储存任何信息).这种输入输出称为字符串输入输出,简称串IO

C++之STL总结精华笔记

一.一般介绍 STL(StandardTemplate Library),即标准模板库,是一个具有工业强度的,高效的C++程序库.它被容纳于C++标准程序库(C++Standard Library)中,是ANSI/ISOC++标准中最新的也是极具革命性的一部分.该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法.为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性. 从逻辑层次来看,在STL中体现了泛型化程序设计的思想(genericprogramming),引入