package com.miracle.test;import java.util.ArrayList;
import java.util.List;
import java.util.Random;/**
*
* @author Miracle
*
*随机生成50个数字(整数),每个数的范围是【10,,50】,统计每个数字出现的次数以及出现次数最多的数字与它的个数,
*最后将每个数字及其出现次数打印出来,如果某个数字出现的次数为0,则不要打印它,打印时按照数字的升序排列
*/
public class RandomNumPrint { public static void main(String[] args) { Random r = new Random();
List<Integer> ls = new ArrayList<Integer>();
for (int i = 0; i < 50; i++) {
ls.add(r.nextInt(40) + 10);
}
/*for (int i : ls) {
System.out.print(i + ",");
}*/
for (int i = 10; i <= 50; i++) {
int n = 0;
for (int j : ls) {
if (i == j) {
n++;
}
}
if (n > 0)
System.out.print(i + ":" + n + ",");
}
}
}
import java.util.List;
import java.util.Random;/**
*
* @author Miracle
*
*随机生成50个数字(整数),每个数的范围是【10,,50】,统计每个数字出现的次数以及出现次数最多的数字与它的个数,
*最后将每个数字及其出现次数打印出来,如果某个数字出现的次数为0,则不要打印它,打印时按照数字的升序排列
*/
public class RandomNumPrint { public static void main(String[] args) { Random r = new Random();
List<Integer> ls = new ArrayList<Integer>();
for (int i = 0; i < 50; i++) {
ls.add(r.nextInt(40) + 10);
}
/*for (int i : ls) {
System.out.print(i + ",");
}*/
for (int i = 10; i <= 50; i++) {
int n = 0;
for (int j : ls) {
if (i == j) {
n++;
}
}
if (n > 0)
System.out.print(i + ":" + n + ",");
}
}
}
解决方案 »
- java线程问题
- 连接数据库,发生字符的问题
- 关于数据小数位数的四舍五入及小数位数的截断做法
- java编程思想第四版中文版出来了,想看看里面的新东西,不知广州哪里有的卖。
- 讨论,要如果把CS和BS结合
- java基础
- SQLException: Invalid handle 是怎么回事?
- 关于容器比较的问题!
- 在安装JAVA2 SDK后,如何解决path路径问题?
- 请问Java TM Programming Language中的TM(在Java的右角上)是什么意思啊?
- java JTree 实现checkbox树 getTreeCellRendererComponent 错误
- jdbc中同时执行多条sql语句的问题。
int[] a = new int[50];
Map<Integer,Integer> m = new LinkedHashMap<Integer,Integer>();
for(int i= 0;i<50;i++){
a[i]=r.nextInt(41)+10;
}
Arrays.sort(a);
for(int i = 0;i<50;i++){
if(m.containsKey(a[i])){
m.put(a[i], m.get(a[i])+1);
}
else
m.put(a[i], 1);
}
System.out.println(m);
空间复杂度O(2n).
Random r = new Random();
int[] a = new int[51];
for(int i= 0;i<50;i++){
a[r.nextInt(41)+10]+=1;
}
int max=a[0];
int count=0;
for(int i=1;i<51;i++){
if(max<a[i]){
count=i;
max=a[i];
}
if(a[i]>0){
printf(i+" 出现 "+a[i]+" 次");
}
}
printf("出现次数最多的是"+max+" 出现 "+count+" 次");
O(n*log2(n))这是咋算的?是Arrays.sort()的时间复杂度?Arrays.sort(),看了下java源码,大于7的数组应该调用的是快速排序,O(n*log(n)).
长度小于7的用的插入排序 。