一个java编程题,怎么求出数组中重复数字的出现次数,并按次数从大到下排序
打印出这样的5出现8次10出现7次2出现5次1出现2次3出现1次上点代码吧思路我也有就是写不出来是按重复次数的从大到小排序...
打印出这样的 5出现8次 10出现7次 2出现5次 1出现2次 3出现1次
上点代码吧 思路我也有 就是写不出来
是按重复次数的从大到小排序 展开
上点代码吧 思路我也有 就是写不出来
是按重复次数的从大到小排序 展开
5个回答
展开全部
#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
//return count; } int main() { int s[1000]; ifstream inf("1.txt"); int i=0;
{
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;
}
}
参考资料:百度百科 排序
展开全部
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;
}
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;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/***求出一个数组中出现次数最多的数,如果有多个数出现次数相同,一同列出 */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); } }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(i=0;i<i.length;i++){
system.out.println("");
}
system.out.println("");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用增强FOR循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询