作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想使用分治法检测给定数组中的重复项。我可以为此使用合并排序吗:
首先将数组拆分为 log N 步
然后合并排序
合并时使用计数器变量检测重复项。 O(N)
所以总共需要 O(N log N) 步...
这种方法是否正确?
最佳答案
你不需要。你可以在 O(n) 中完成
你有原始数组 int A[N];同样创建第二个数组 bool a[N],类型为 bool=false。迭代第一个数组并设置 a[A[i]]=true 如果它是 false,否则你找到了一个重复项。
关于c - 使用分而治之法检测重复项 - 归并排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17184553/
本文实例汇总了Java各种排序算法。分享给大家供大家参考,具体如下: 1. 冒泡排序: ?
1.冒泡排序 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 算法步
前言 平时用惯了高级语言高级工具高级算法,难免对一些基础算法感到生疏。但最基础的排序算法中实则蕴含着相当丰富的优化思维,熟练运用可起到举一反三之功效。 选择排序 选择排序几乎是
我是一名优秀的程序员,十分优秀!