码迷,mamicode.com
首页 > 编程语言 > 详细

一个时间O(n)的洗牌算法

时间:2019-09-06 22:42:10      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:res   for   时间   span   style   turn   col   tor   class   

 1 //一种O(n)的洗牌算法
 2 vector<int> randNUms(vector<int> &nums, int m)
 3 {
 4     int len = nums.size();
 5     if (len < m)
 6         return {};
 7 
 8     vector<int> res;
 9     for (int i = len - 1; i >= 0, m-- > 0; i--)
10     {
11         int r = rand() % i;
12         res.push_back(nums[r]);
13         int tmp = nums[r];
14         nums[r] = nums[i];
15         nums[i] = tmp;
16     }
17     return res;
18 }

时间O(n),空间O(1).

一个时间O(n)的洗牌算法

标签:res   for   时间   span   style   turn   col   tor   class   

原文地址:https://www.cnblogs.com/yocichen/p/11478500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!