从文本文件中读取随机数,并打印出数字所出现的次数,按次数降序排列
2014-03-21 17:18
357 查看
要求:从txt文件中读取1~1000的1000个随机数,然后记录每一个随机数出现的次数,并且按照随机数出现的次数进行降序排列,最后打印出每一个随机数所出现的次数。
import java.io.*;
public class AlgorithmTest{
public static void main(String[] args)throws Exception{
int a[]=new int[1000];
//文件绝对路径改成你自己的文件路径
FileReader fr=new FileReader("D:\\data.txt");
//可以换成工程目录下的其他文本文件
BufferedReader br=new BufferedReader(fr);
String s = null;
System.out.println("你输入的文本如下:");
try{
do{
s=br.readLine(); //一次读取一行数字
if(s!=null)
{
System.out.println(s);
}
String arrays[] = s.split("\\s+"); //每一个数字按空格隔开
int Length = arrays.length;
int arrayi[] = new int [Length];
for(int i=0;i<Length;i++)
{
arrayi[i] = Integer.parseInt(arrays[i]);
a[arrayi[i]]++; //a数组的元素下标记录随机数,元素值记录随机数所出现的次数
}
}while(s!=null);
br.close();
}catch(Exception e){
e.printStackTrace();
}
int[] b = new int[1000];
//新建一个数组b来记录排序前数组a的下标值(即是出现的随机数值)
for(int i=0; i < 1000; i++) {
b[i] = i;
}
descSort(a, b);
for(int i=0; i<a.length; i++){
System.out.println("数字"+b[i]+"出现的次数为:" + a[i]);
}
}
//改进后的冒泡算法,在降序排列数组a的同时,只要a中元素交换,那么b中元素对应同时交换,这就使得a数组 //降序排列后,b数组中与之对应的元素还是排序之前a数组元素的下标值
public static void descSort(int[] a, int[] b) {
int temp = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length - 1 - i; j++) {
if (a[j] < a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
temp = b[j];
b[j] = b[j + 1];
b[j + 1] = temp;
}
}
}
}
}
import java.io.*;
public class AlgorithmTest{
public static void main(String[] args)throws Exception{
int a[]=new int[1000];
//文件绝对路径改成你自己的文件路径
FileReader fr=new FileReader("D:\\data.txt");
//可以换成工程目录下的其他文本文件
BufferedReader br=new BufferedReader(fr);
String s = null;
System.out.println("你输入的文本如下:");
try{
do{
s=br.readLine(); //一次读取一行数字
if(s!=null)
{
System.out.println(s);
}
String arrays[] = s.split("\\s+"); //每一个数字按空格隔开
int Length = arrays.length;
int arrayi[] = new int [Length];
for(int i=0;i<Length;i++)
{
arrayi[i] = Integer.parseInt(arrays[i]);
a[arrayi[i]]++; //a数组的元素下标记录随机数,元素值记录随机数所出现的次数
}
}while(s!=null);
br.close();
}catch(Exception e){
e.printStackTrace();
}
int[] b = new int[1000];
//新建一个数组b来记录排序前数组a的下标值(即是出现的随机数值)
for(int i=0; i < 1000; i++) {
b[i] = i;
}
descSort(a, b);
for(int i=0; i<a.length; i++){
System.out.println("数字"+b[i]+"出现的次数为:" + a[i]);
}
}
//改进后的冒泡算法,在降序排列数组a的同时,只要a中元素交换,那么b中元素对应同时交换,这就使得a数组 //降序排列后,b数组中与之对应的元素还是排序之前a数组元素的下标值
public static void descSort(int[] a, int[] b) {
int temp = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length - 1 - i; j++) {
if (a[j] < a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
temp = b[j];
b[j] = b[j + 1];
b[j + 1] = temp;
}
}
}
}
}
相关文章推荐
- 随机产生50个30到35的整数,统计每个数字出现的次数(TreeMap实现),输出时按照数字的降序排列,并且统计出现次数最多的数字和它的次数。
- java版本: 把手机号码里重复数字出现的次数按从多到少排列打印出来
- 剑指offer 数字在排序数组中出现的次数 从尾到头打印链表 跳台阶 变态跳台阶
- 数字在排列数组中出现的次数(面试题 38)
- 【小程序】JAVA实现从10~50中随机生成50个数,统计出现的数字及次数,输出出现最多的次数及对应的数字,按数字升序排列。
- 从文件读取包含数字和字母字符串,统计每个字符出现的次数,将次数输出到另外一个文件
- 2017年初编码标题之一:通过关键字查找在文字中出现的次数并按照降序的排列进行展示
- 从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数
- java读取txt文件,并统计每行中每个字母出现的次数,并将产生的数字保存到一个新的txt文件中(有加分)
- 【C语言】统计随机数中数字出现个数,并打印直方图
- 给你一个整型数组如{1,3,4,7,2,1,1,5,2}, * 打印出现次数最多的那个数,如果最多的次数相同,则打印数字大的那个数。
- 从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数
- 随机产生50个整数,位于[10,50],统计每个数字出现的次数以及出现次数最多的数字与出现次数并打印.如果出现次数为0不打印,打印时要求升序
- 随机生成 50 个数字,每个数字的范围在 [10, 50] 之间,统计每个数字出现的次数,最后将每个数字和它出现的次数打印出来
- 统计你的手机号码中出现次数最多的数字,并打印出此数字及其出现次数
- Python读取英文文件并记录每个单词出现次数后降序输出示例
- python字典分别按照key和value升序或者降序排列--以给定一个含有重复元素的数组list,按照其出现次数大小降序输出
- 面试题:从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序
- 输出9乘9乘法口诀表并实现0-9每个数字出现的次数并打印出来
- 练习 6-4 编写一个程序,根据单词的出现频率按降序打印输入的各个不同单词,并在 每个单词的前面标上它的出现次数