C# 集合乱序(极精简,复制即用)

自己写的,目前我在CSDN没有找到比这个更简单的写法,而且时间复杂度也是比较低,而且随机性比较强。代码简短,复制即用

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;

public List RandomList(List inList) {

        List newList = new List();
        int count = inList.Count;
        for (int i = 0; i < count; i++)
        {
            int temp = UnityEngine.Random.Range(0, inList.Count - 1);
            T tempT = inList[temp];
            newList.Add(tempT);
            inList.Remove(tempT);
        }
        //将最后一个元素再随机插入
       T tempT2 = newList[newList.Count - 1];
        newList.RemoveAt(newList.Count - 1);
        newList.Insert(UnityEngine.Random.Range(0,newList.Count), tempT2);
        inList = newList;
        return inList;
    }

使用方法

public void Test() {
        List testList = new List();
        testList.Add(2);
        testList.Add(4);
        testList.Add(6);
        testList.Add(8);
        testList.Add(10);
        testList.Add(12);

        testList = RandomList(testList);
        //这个时候集合已经随机了
    }

你可能感兴趣的:(c#,unity,排序算法)