avatar
G家一道onsite题目# JobHunting - 待字闺中
e*8
1
题目是这道题的扩展
https://leetcode.com/problems/wiggle-sort/
1. 如果用单线程来解决,不难,网上有现成的解法。
2. 如果用多线程,可以加速,每个线程负责一段数据,最后把所有的都merge起来,也
不太难
3. 现在的问题是,如果确定到底需要多少个线程?假设内存无限大。
不知道最后一步要考察什么,求解答。。。
avatar
g*e
2
这个不要merge吧。分成奇偶两个loop就没dependency了:
for(int i = 0; i < nums.length-1; i+=2)
if(nums[i] > nums[i+1])
//swap nums[i] and nums[i+1]

for(int i = 1; i < nums.length-1; i+=2)
if(nums[i] < nums[i+1])
//swap nums[i] and nums[i+1]
avatar
A*s
3
如果对于某一个 i , 需要跟其左或其右的数交换,那么两个 thread 会有同时写一个
内存的情况吗?
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。