.Net 乱序方法

  前两天开发一个奇葩的功能,突然间想到了用打乱顺序的方式解决。记录代码如下:

        /// <summary>
        /// 把收集回来的列表打乱顺序之后返回
        /// </summary>
        /// <returns></returns>
        public IList<string> RandomSort(IList<string> ListStr)
        {
            Random rand = new Random();
            int iTarget = 0;
            string str = "";
            for (int i = 0; i < ListStr.Count; i++)
            {
                iTarget = rand.Next(0, ListStr.Count);
                str = ListStr[i];
                ListStr[i] = ListStr[iTarget];
                ListStr[iTarget] = str;
            }
            return ListStr;
        }

  原理很简单,循环所有 =》 第N位,与"随机数"位交换。

时间: 2024-10-17 00:16:39

.Net 乱序方法的相关文章

Shell脚本实现乱序排列文件内容的多种方法(洗牌问题)

洗牌问题:洗一副扑克,有什么好办法?既能洗得均匀,又能洗得快?即相对于一个文件来说怎样高效率的实现乱序排列? ChinaUnix 确实是 Shell 高手云集的地方,只要你想得到的问题,到那里基本上都能找到答案.r2007给出了一个取巧的方法,利用 Shell 的 $RANDOM 变量给原文件的每一行加上随机的行号然后根据这个随机行号进行排序,再把临时加上去的行号给过滤掉,这样操作之后得到的新文件就相当于被随机“洗”了一次: while read i;do echo "$i $RANDOM&qu

Collections 乱序、排序方法使用

/**开始*/ package com.gcj.test; import java.text.ParseException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * * 排序Test * @author youps-a * @version $Id: Tes

写一个函数实现数组中的元素随机乱序排序

//原生JS写一个函数实现一个shuffle方法,将数组中的元素随机乱序排序 var shuffle = function(arr){ var len,t,rand; for(var i =0;len = arr.length,i<len;i++){ rand = parseInt(Math.random()*len);//parseInt(Math.random()*(len-1-0)+1);或者rand = Math.floor(Math.random()*(len-1-0)+1);即Mat

IOCP 乱序

         关于IOCP乱序的探讨                   2011-07-14 10:55:49 标签:职场 休闲 IOCP乱序 关于IOCP的探讨 本文主要探讨一下windows平台上的完成端口开发及其与之相关的几个重要的技术概念,这些概念都是与基于IOCP的开发密切相关的,对开发人员来讲,又不得不给予足够重视的几个概念: 1) 基于IOCP实现的服务吞吐量 2)IOCP模式下的线程切换 3)基于IOCP实现的消息的乱序问题. 一.IOCP简介     提到IOCP,大家都

使用块代码实现数组排序和乱序

1 #import "HMViewController.h" 2 3 @interface HMViewController () 4 5 @end 6 7 @implementation HMViewController 8 9 - (void)viewDidLoad 10 { 11 [super viewDidLoad]; 12 13 // 块代码 14 NSArray *array = @[@(1), @(2), @(3), @(4), @(5)]; 15 16 // 排序 17

10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。

题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数.内存限制为 2G.只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存). 关于中位数:数据排序后,位置在最中间的数值.即将数据分成两部分,一部分大于该数值,一部分小于该数值.中位数的位置:当样本数为奇数时,中位数=(N+1)/2 ; 当样本数为偶数时,中位数为N/2与1+N/2的均值(那么10G个数的中位数,就第5G大的数与第5G+1大的数的均值了). 分析:明显是一道工

android图片显示(一) ———— 关于并发,乱序问题的处理

GridView加适配器的方式 如果仅仅只用gridview加适配器的方法,因为加载图片是需要时间的,如果你直接在getview中加载图片的话,就会影响UI,照成滑动的时候卡顿.所以,每加载一个图片的时候,我们会开启一个额外的进程,这样就不会影响UI主线程了. 仅仅只是开启一个额外的线程会出现"乱序"的问题.也就是"并发性"的问题. 因为,当你进行滑动的时候,凡是经过的区域都会打开线程加载图片,每个线程执行完毕的时间不是固定的.只有当线程执行完毕后,才会显示在当前屏

在一个文件中有10G个整数,乱序排列,要求找出中位数

 题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数.内存限制为 2G.只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存). 关于中位数:数据排序后,位置在最中间的数值.即将数据分成两部分,一部分大于该数值,一部分小于该数值.中位数的位置:当样本数为奇数时,中位数=(N+1)/2 ; 当样本数为偶数时,中位数为N/2与1+N/2的均值(那么10G个数的中位数,就第5G大的数与第5G+1大的数的均值了). 分析:明显是一道

解析linux下磁盘乱序的问题

大家在使用linux过程当中肯定遇到过磁盘乱序的问题.一般情况下引起磁盘乱序有几种可能,比如磁盘是通过raid卡连接到服务器的,raid卡电池没电来,这时候如果服务器掉电的情况下可能会引起磁盘乱序.再就是比如新的服务器,但raid驱动是比较老的版本,一旦重启也经常会有乱序的可能.再就是服务器磁盘较多,sata/ssd存在混用的情况下也会有乱序的可能. 针对这种乱序的情况应该如何解决呢?这里我总结了一种比较好的结局方法.下面这个脚本的目的是通过udevinfo(centos5)或者udevadm(