[原创.版权:杜聪]转载请注明出处
今天,给学生讲java时,忽然讲到京东商品排序问题。即兴发挥,写了这段程序。基于topN算法。排出销量前5名的 手机型号。(当然:真实的京东是用 基于集群的分布式计算框架实现的。后续我会再写一篇集群模式的博文)
原始数据:
手机型号 销量
----------------------
华为Mate 8 602 小米 3 202 vivo x6 502 oppo r7 408 小米 4 501 apple 6 1000 魅族mx5 400
代码实现:
String[][] goodsSales= new String[][]{{"华为 Mate 8","602"},{"小米 3 ","202"},{"vivo x6 ","502"},{"oppo r7 ","408"},{"小米 4 ","501"},{"apple 6 ","1000"},{"魅族 mx5","400"}}; String[][] top5 = new String [5][2]; for(int k = 0;k <goodsSales.length;k++){ ; for(int i=0;i<5;i++){ if(top5[i][0]==null){ top5[i][0] = goodsSales[k][0]; top5[i][1] = goodsSales[k][1]; break; }else if(Integer.parseInt(goodsSales[k][1])>Integer.parseInt(top5[i][1])){ for(int j = 4;j>i;j--){ top5[j][0] = top5[j-1][0]; top5[j][1] = top5[j-1][1]; } top5[i][0] = goodsSales[k][0]; top5[i][1] = goodsSales[k][1]; break; } } } System.out.println("京东商城手机销售排名:\n"); for(int i = 0 ;i<5;i++) for(int j = 0;j<2;j++){ System.out.print(top5[i][j]+" "); if(j==1) System.out.println(); }
程序输出结果:
:
原文:http://www.cnblogs.com/ducong/p/5252050.html