package com.comment;
import java.util.Arrays;
import java.util.Random;
/**
* 从N个随机整数中查找出现频率最高的所有整数
*
* @author a
*
*/
public class Lkj003 {
/**
* 随机整数个数
*/
private static final int NUMBER = 22;
/**
* 随机数存放数组
*/
private static final int[] source = new int[NUMBER];
/**
* 随机数存放数组[0/1]
*/
private static final int[] binary = new int[NUMBER];
/**
* 随机数存放数组[统计]
*/
private static final int[] sum = new int[NUMBER];
/**
* 出现次数
*/
private static int count;
/**
* 第一次出现位置
*/
private static int position;
/**
* 初始化数组、并排序
*/
private static void init() {
Random random = new Random();
for (int i = 0; i < NUMBER; i++) {
source[i] = random.nextInt(NUMBER);
}
// 1-3 对数组进行排序
Arrays.sort(source);
for (int i : source) {
System.out.print(i + ",");
}
}
public static void main(String[] args) {
long start = System.currentTimeMillis();
init();
// 2-3 将数组转换成0/1形式
for (int i = 0; i < NUMBER - 1; i++) {
if (source[i] == source[i + 1])
binary[i] = 1;
else
binary[i] = 0;
}
// 3-3 根据连续出现1的长度,来判断出现频率
for (int i = 0; i < NUMBER; i++) {
for (int j = i; j < NUMBER; j++) {
if (binary[j] == 0)
break;
sum[i]++;
}
if (sum[i] > count) {
count = sum[i];
position = i;
}
}
long end = System.currentTimeMillis();
long userTime = end - start;
System.out.println();
StringBuffer value = new StringBuffer();
for (int i = position; i < NUMBER; i++) {
if (sum[i] == count) {
value.append(source[i] + ",");
}
}
System.out.println(NUMBER + "个随机数,出现频率最高的是" + value + "首次出现的位置:"
+ position + "," + "出现次数:" + (count + 1) + "耗时:" + userTime
+ " ms");
}
}
import java.util.Arrays;
import java.util.Random;
/**
* 从N个随机整数中查找出现频率最高的所有整数
*
* @author a
*
*/
public class Lkj003 {
/**
* 随机整数个数
*/
private static final int NUMBER = 22;
/**
* 随机数存放数组
*/
private static final int[] source = new int[NUMBER];
/**
* 随机数存放数组[0/1]
*/
private static final int[] binary = new int[NUMBER];
/**
* 随机数存放数组[统计]
*/
private static final int[] sum = new int[NUMBER];
/**
* 出现次数
*/
private static int count;
/**
* 第一次出现位置
*/
private static int position;
/**
* 初始化数组、并排序
*/
private static void init() {
Random random = new Random();
for (int i = 0; i < NUMBER; i++) {
source[i] = random.nextInt(NUMBER);
}
// 1-3 对数组进行排序
Arrays.sort(source);
for (int i : source) {
System.out.print(i + ",");
}
}
public static void main(String[] args) {
long start = System.currentTimeMillis();
init();
// 2-3 将数组转换成0/1形式
for (int i = 0; i < NUMBER - 1; i++) {
if (source[i] == source[i + 1])
binary[i] = 1;
else
binary[i] = 0;
}
// 3-3 根据连续出现1的长度,来判断出现频率
for (int i = 0; i < NUMBER; i++) {
for (int j = i; j < NUMBER; j++) {
if (binary[j] == 0)
break;
sum[i]++;
}
if (sum[i] > count) {
count = sum[i];
position = i;
}
}
long end = System.currentTimeMillis();
long userTime = end - start;
System.out.println();
StringBuffer value = new StringBuffer();
for (int i = position; i < NUMBER; i++) {
if (sum[i] == count) {
value.append(source[i] + ",");
}
}
System.out.println(NUMBER + "个随机数,出现频率最高的是" + value + "首次出现的位置:"
+ position + "," + "出现次数:" + (count + 1) + "耗时:" + userTime
+ " ms");
}
}