乱序排列一个数组

/// <summary>

    /// 乱序排列一个数组

    /// </summary>

    void Shuffle(string[] intArray)

    {

        for (int i = 0; i < intArray.Length; i++)

        {

            string temp = intArray[i];

            int randomIndex = Random.Range(0, intArray.Length);

            intArray[i] = intArray[randomIndex];

            intArray[randomIndex] = temp;

        }       

}

 

/// <summary>

        /// 随机排序

        /// </summary>

        /// <param name="arry"></param>

        /// <returns></returns>

        public static int[] RandSort(int[] arry)

        {

            int[] arryNew = new int[arry.Length];

            Random rnd = new Random();

            int n = arry.Length;

            int i = 0;

            while (n > 0)

            {

                int index = rnd.Next(n);

                arryNew[i] = arry[index];

                arry[index] = arry[n-1];

                n--;

                i++;

            }

            return arryNew;

        }

//调用

int[] arry = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

int[] arryRes = RandSort(arry);

 

 

如果要扩展到其他类型的数组队列,可以用泛型

//任意类型的队列随机排序

 public static T[] RandSort<T>(T[] arry)

        {           

            T[] arryNew = new T[arry.Length];

            Random rnd = new Random();

            int n = arry.Length;

            int i = 0;

            while (n > 0)

            {

                int index = rnd.Next(n);

                arryNew[i] = arry[index];

                arry[index] = arry[n - 1];

                n--;

                i++;

            }

            return arryNew;

        }

//调用

string[] sArray = new string[] { "ab", "fs", "ta", "ds", "gd", "fafd" };

string[] sArrayRes = RandSort<string>(sArray);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值