一个java编程题,怎么求出数组中重复数字的出现次数,并按次数从大到下排序

打印出这样的5出现8次10出现7次2出现5次1出现2次3出现1次上点代码吧思路我也有就是写不出来是按重复次数的从大到小排序... 打印出这样的 5出现8次 10出现7次 2出现5次 1出现2次 3出现1次
上点代码吧 思路我也有 就是写不出来

是按重复次数的从大到小排序
展开
 我来答
兔丞飞
高粉答主

推荐于2019-09-05 · 专注娱乐 专注娱乐 专注娱乐
兔丞飞
采纳数:25 获赞数:19893

向TA提问 私信TA
展开全部
#include <iostream> #include <string> #include <fstream> using namespace std; int count=0; void countNum(int a[],int start,int finish) { //cout<<start<<" \n"<<finish<<"\n"; int middle=(start+finish)/2; if(start>finish) return ; if(a[middle]==2) { count++; countNum(a,start,middle-1); countNum(a,middle+1,finish); //cout<<"get here"<<middle<<endl; }else if(a[middle]>2) { countNum(a,start,middle-1); }else

{

countNum(a,middle+1,finish);

}
//return count; } int main() {  int s[1000]; ifstream inf("1.txt"); int i=0;

while(!inf.eof())

{inf>>s[i];i++;} //int s[]={1,2,2,2,3}; int start=0;//,finish=NUM-1; countNum(s,start,i-1); cout<<count<<endl;  }


扩展资料

#include<iterator>

template<typenamebiIter>

voidinsertion_sort(biIterbegin,biIterend)

{

typedeftypenamestd::iterator_traits<biIter>::value_typevalue_type;

biIterbond=begin;

std::advance(bond,1);

for(;bond!=end;std::advance(bond,1)){

value_typekey=*bond;

biIterins=bond;

biIterpre=ins;

std::advance(pre,-1);

while(ins!=begin&&*pre>key){

*ins=*pre;

std::advance(ins,-1);

std::advance(pre,-1);

}

*ins=key;

}

}

参考资料:百度百科 排序

专治八阿哥的孟老师
推荐于2017-09-20 · 爱生活,爱编程,专心于学习技术和撸猫
专治八阿哥的孟老师
采纳数:494 获赞数:3914

向TA提问 私信TA
展开全部
public static void main(String[] args) {
int array[]={5, 10, 10, 5, 2, 5, 3, 5, 10, 5, 2, 5, 5, 10, 1, 5, 1};
Arrays.sort(array);// 给数组排序
int count=0;
int tmp=array[0];
Map map=new HashMap();
for(int i=0; i < array.length; i++) {
if(tmp != array[i]) {
tmp=array[i];
count=1;
} else {
count++;
}
map.put(array[i], count);
}
map=sortByValue(map);
Set<Integer> key = map.keySet();
for (Iterator it = key.iterator(); it.hasNext();) {
Integer s = (Integer) it.next();
System.out.println(s+"出现了"+map.get(s));
}
}

public static Map sortByValue(Map map) {
List list=new LinkedList(map.entrySet());
Collections.sort(list, new Comparator() {
// 将链表按照值得从小到大进行排序
public int compare(Object o1, Object o2) {
return ((Comparable)((Map.Entry)(o2)).getValue()).compareTo(((Map.Entry)(o1)).getValue());
}
});
Map result=new LinkedHashMap();
for(Iterator it=list.iterator(); it.hasNext();) {
Map.Entry entry=(Map.Entry)it.next();
result.put(entry.getKey(), entry.getValue());
}
return result;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
怀疑自己的人
2012-11-14
知道答主
回答量:17
采纳率:0%
帮助的人:5.1万
展开全部
/***求出一个数组中出现次数最多的数,如果有多个数出现次数相同,一同列出 */import java.util.TreeMap;import java.util.Iterator;import java.util.Map;import java.util.Set;import java.util.Arrays;class ArrayLookup{public void getMaxCount(int[] iArr){int i = 0; //临时变量 int j = 0; //临时变量int count = 1; //记录相同数字出现次数int temp = 0; //记录数组中相同元素的值int max = 0; //记录出现次数最多的数 //数组排序Arrays.sort(iArr);TreeMap<Integer,Integer> tm = new TreeMap<Integer,Integer>();//将数字与其出现次数存入Map集合while(i<iArr.length){for(j= i+1; j<iArr.length && iArr[i]==iArr[j]; j++)count++;tm.put(iArr[i],count); count = 1;i = j;}Set<Map.Entry<Integer,Integer>> set = tm.entrySet();Iterator<Map.Entry<Integer,Integer>> it = set.iterator();while(it.hasNext()){Map.Entry<Integer,Integer> me = it.next();System.out.println(me.getKey() + "出现 " + me.getValue() + " 次");}}}public class ArrayLookupMain {private int count;public static void main(String[] args){ int[] intArray = {2,3,4,2,3,4};//,2,2,2,2,5,2,12,6,8,4,3,7,7,5,3,2,5,8,9,8,8,4,5,4,6,8,9,0,5,3,3,2,4,4,7,8,5,34,5,6,5,3,34,6,7,8,9,0};ArrayLookup arr = new ArrayLookup();arr.getMaxCount(intArray); } }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冬季的马儿
2012-11-14
知道答主
回答量:24
采纳率:0%
帮助的人:15.9万
展开全部
for(i=0;i<i.length;i++){
system.out.println("");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
盛世中华梦
2012-11-17 · 超过11用户采纳过TA的回答
知道答主
回答量:193
采纳率:0%
帮助的人:38.6万
展开全部
用增强FOR循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式