Java计算数组中元素出现的次数
1 说明
在此程序中,我们有一个元素数组来计算其每个元素的出现。解决此问题的方法之一是维护一个数组来存储该数组每个元素的计数。遍历数组,并将每个元素的出现计数为频率,并将其存储在另一个数组fr中。
1 2 8 3 2 2 2 5 1
在给定的数组中,1出现了两次,所以它的频率是2,2出现了四次,所以频率是4,依此类推。
2 算法思路
- 步骤1:开始
- 步骤2:初始化arr [] = {1、2、8、3、2、2、2、5、1}。
- 步骤3:创建arr []长度的fr []。
- 步骤4: SET造访= -1。
- 步骤5:对(i = 0; i <arr.length; i ++)重复步骤6至步骤9
- 步骤6: SET计数= 1
- 步骤7:对(j = i + 1; j <arr.length; j ++)重复步骤8
- 步骤8: if(arr [i] == arr [j])then
count ++
fr [j] = visited - 步骤9: if(fr [i]!= visited)然后
fr [i] = count - 步骤10:打印“ ------------”
- 步骤11:打印“元素|频率”
- 步骤12:打印“ -------------”
- 步骤13:对(i = 0; i <fr.length; i ++)重复步骤14
- 步骤14: if(fr [i]!= visited)然后
打印arr [i]和fr [i] - 步骤15:打印“ -------------”
- 步骤16:结束
3 程序实现
public class Frequency {
public static void main(String[] args) {
//Initialize array
int [] arr = new int [] {1, 2, 8, 3, 2, 2, 2, 5, 1};
//Array fr will store frequencies of element
int [] fr = new int [arr.length];
int visited = -1;
for(int i = 0; i < arr.length; i++){
int count = 1;
for(int j = i+1; j < arr.length; j++){
if(arr[i] == arr[j]){
count++;
//To avoid counting same element again
fr[j] = visited;
}
}
if(fr[i] != visited)
fr[i] = count;
}
//Displays the frequency of each element present in array
System.out.println("---------------------------------------");
System.out.println(" Element | Frequency");
System.out.println("---------------------------------------");
for(int i = 0; i < fr.length; i++){
if(fr[i] != visited)
System.out.println(" " + arr[i] + " | " + fr[i]);
}
System.out.println("----------------------------------------");
}}
以上代码输出结果为:
----------------------------------------
Element | Frequency
----------------------------------------
1 | 2
2 | 4
8 | 1
3 | 1
5 | 1
----------------------------------------
热门文章
优秀文章