项目中涉及到对大批量的数据进行打乱式排序,大概原理如下:

  输入源数据:1,1,2,3,3,3,4,4

  输出结果:   1,2,3,4,1,3,4,3

  

  实现代码如下,采用递归的思想: 

static <T> List<T> sort(List<T> numbers){
List<T> rights = Lists.newArrayList();
   if(numbers.size == 0) {
return rights;
}else if(numbers.size() == 1){
rights.addAll(numbers);
numbers.clear();
return rights;
} List<T> lefts = Lists.newArrayList();
for(T num : numbers){
if(!rights.contains(num)){
rights.add(num);
}else{
lefts.add(num);
}
}
if(lefts.size > 0){
rights.addAll(sort(lefts));
lefts.clear();
} return rights;
}

最新文章

  1. spring.net 配置文件需要注意换行问题
  2. 浅谈-js递归函数
  3. Noip2000 T3 单词接龙
  4. SQLServer 2008以上误操作数据库恢复方法——日志尾部备份(转)
  5. Linux Shell编程(11)——退出和退出状态
  6. yii phpexcel &lt;转&gt;
  7. $(document).ready()与window.onload的区别(转发)
  8. QT实现,通过URL下载文件的接口实现
  9. SqlServer 添加列并赋值
  10. RHCSA
  11. bootstrap----几个插件网址
  12. 记录C#错误日志工具
  13. ucenter通信实现同步登录、同步退出(详细)
  14. 【数据结构】【平衡树】浅析树堆Treap
  15. js数组去重 javascript版
  16. 关于ArrayList的一些源码分析
  17. 笔记-python-语法-super
  18. vmware设置静态ip(复制)
  19. jquery/js/a标签实现当前页面跳转的两种方法
  20. asp.net+access实现DropDownList与RadDatePicker同步筛选

热门文章

  1. JavaScript知识体系索引
  2. Winform 自定义程序安装向导(可用于数据库升级等)
  3. [SinGuLaRiTy] NOIP 膜你赛-Day 2
  4. C#之重载
  5. tcp设置超时重传
  6. [TJOI2013]松鼠聚会 BZOJ 3170
  7. POJ1664 放苹果 (母函数)
  8. JEECG入门
  9. HashMap的容量大小增长原理(JDK1.6/1.7/1.8)
  10. STS(spring tool suite)修改默认编码