码迷,mamicode.com
首页 > 编程语言 > 详细

前端笔试题目练习笔记:统计数组中不同的数字出现的概率并排序

时间:2015-03-14 16:55:39      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:冒泡排序   前端笔试   数组找不同的数字   

题目要求:有一个int型数组,里面有若干数字。要求统计出一共有多少种不同的数字?每种数字出现的频率?将数组按出现频率从少到多排列,频率相同则从小到大排列。
解决方法:用一个数组来存储不同的数字及出现概率,逐一拿出数组中的数字和数组中的其他数字进行比较,相同则把相同的那个设为null,同时将该数字对应的出现次数加1,最后使用冒泡排序
js实现代码:

var NumberData=[1,4,5,7,8,3,1,6,4,8,4,6,9,410,12,15,12,6,20,12,5,7,8,5,2,4,1,5,6,3,10];
function CountNumberArray(){
    var result=[];
    result[0]=[];
    result[1]=[];
    var allDisNum=0;
    var index=0;
    //统计不同的数字
    for (var i = NumberData.length - 1; i >= 0; i--) {
        var temp=NumberData[i];
        if(temp){
            result[0][index]=temp;
            result[1][index]=1;
            for (var j = NumberData.length - 1; j >= 0; j--) {
                if(temp==NumberData[j]&&j!=i){
                    result[1][index]+=1;
                    NumberData[j]=null;
                }
            }
            index++;
        }

    }
    //排序
    for (var i = 0; i <result[1].length-1; i++) {
        for(var j=i+1;j<result[1].length;j++){
            var fcnt=result[1][i];
            var fnum=result[0][i];
            if(fcnt>result[1][j]|(fcnt==result[1][j]&&fnum>result[0][j])){
                result[1][i]=result[1][j];
                result[1][j]=fcnt;
                result[0][i]=result[0][j];
                result[0][j]=fnum;

            }
        }
    }
}

前端笔试题目练习笔记:统计数组中不同的数字出现的概率并排序

标签:冒泡排序   前端笔试   数组找不同的数字   

原文地址:http://blog.csdn.net/ldldong/article/details/44260837

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!