把1000个数随机放到1000个位置。

这也就是一个简单的面试题。觉得比较有意思。就顺带写一下

举个简单的例子吧。

学校统一考试的时候  有 1000个人,然后正好有 1000个考试位置,需要随机排列。那么就有了如下的代码。

private List<int> getList()
       {

Random random = new Random();
           List<int> list = new List<int>();

for (int i = 0; i < 1000; i++)
           {
               //为数组赋值
               list[i] = i + 1;
           }

for (int i = 0; i <1000; i++)
           {
               int  temp;
               int j = random.Next(0, 999);
               //交换两个数据的值
               temp = list[j];
               list[j] = list[i];
               list[i] = temp;
           }
           return list;
          
       }

这样我们再改装一下  假设我们就知道了 这些学生的ID 并且放到了一个list中

就有了如下的

private List<int> getList( List<int> list)
       {

Random random = new Random();
           for (int i = 0; i <list.Count; i++)
           {
               int  temp;
               int j = random.Next(0, list.Count-1);
               //交换两个数据的值
               temp = list[j];
               list[j] = list[i];
               list[i] = temp;
           }
           return list;
          
       }

这样就简单封装了获取随机顺序了。

可以按照   返回的list  安排座位了。  复杂度为O(1000)

最后再改装一下  变成一个common 方法就是终极版啦。任意随机的list

private List<T> getList<T>( List<T> list)
       {

Random random = new Random();
           for (int i = 0; i <list.Count; i++)
           {
               T  temp;
               int j = random.Next(0, list.Count-1);
               //交换两个数据的值
               temp = list[j];
               list[j] = list[i];
               list[i] = temp;
           }
           return list;
          
       }
   添加一个static 就可以放到工具方法

最新文章

  1. tomcat 增加压缩设置
  2. 模板——RMQ
  3. Nodejs&#183;内存控制
  4. Unsafe的应用
  5. 关于 MAXScript 中文路径返回上级目录(精简版)
  6. OC中@property属性关键字的使用(assign/weak/strong/copy)
  7. HDU How many integers can you find 容斥
  8. Java构造函数的继承问题
  9. Html5新标签解释及用法
  10. Ubuntu下fcitx安装。(ibus不会用)
  11. [大牛翻译系列]Hadoop(10)MapReduce 性能调优:诊断reduce性能瓶颈
  12. STL容器的效率比较
  13. 使用Win32/ATL建立窗口的过程
  14. UVA11388 GCD LCM(数论)
  15. 解决Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead
  16. 我的Spring Boot学习记录(一):自动配置的大致调用过程
  17. JS对象的拷贝
  18. react问题解决的一些方法
  19. javaScript核心基础
  20. UNITY 的GC ALLOC到底是什么

热门文章

  1. OpenFileDialog
  2. DragQueryFile
  3. 在Windows下使用MinGW静态编译Assimp
  4. OPENCV中滑动条的使用
  5. struts2操作pojo之小工程struts2ActionPOJO
  6. Java基础知识强化之网络编程笔记08:TCP之客户端键盘录入服务器控制台输出
  7. 在用VS2010连接oracle数据库时ORA-12504错误
  8. codeforces 132C Logo Turtle(dp)
  9. quartz简单实现
  10. Entity Framework Demo(一) 简单搭建环境