题:统计给定一组数组中,不同数字所在数组中出现的次数,并找到最大值和最小值
代码:
import java.util.Arrays;
import java.util.Map;
import java.util.Scanner;
/* *使用计数排序来实现 *1 获取最大值和最小值 *2定义计数数组和找偏移量 确定计数数组长度 */
public class Work1 {
public static void main(String[] args) {
int arr[] = { 2,5,2,5,6,7,6,7,8,8,100};
//获取最大值和最小
int min = arr[0];
int max = arr[0];
for(int i = 0; i < arr.length; i ++) {
if(min > arr[i]) { min = arr[i];}
if(max < arr[i]) { max = arr[i];}
}
System.out.println(“最大值是:” + max);
System.out.println("最小值是:" + min);
// 定义存放数字个数的数组
int[] counts = new int[max -min + 1];
int offset = min - 0;//
//统计每个数次出现的次数
for(int i = 0;i < arr.length; i ++) {
counts[arr[i] - offset] ++;//实现原数组中数字存入计数数组的位置
} //数字所对应计算数组的脚标= 原数字 - 偏移量
//遍历计数数组,将每个元素打印出来 偏移量 = offset
//计算数组中所对应的数是: 偏移量 + 脚标
for(int i = 0; i < counts.length;i ++) { //遍历计数数组
if( counts[i] != 0) {
System.out.println( (offset + i)+ "出现的次数是:" + counts[i]);
}
}
}
}