Excel 取两页中相同的数据项算法一 时间复杂度O(n2)
2011-06-15 12:53
447 查看
工作需要,有时要从Excel的两页中提取一些共同的数据项出来分析, 而两页中的数据都没有按某关键列排过过序, 简单的用VBA写了一个抽取数据的方法:
Sheet6 中存放Sheet3 和 Sheet5中相同的数据项.
算法的时间复杂度为O(m*n) = O(n2)
若果你不在意时间, 数据规模也不是很大, 用上面的函数就够用了.
下篇会介绍, 先对Sheet3 和 Sheet5中数据排序, 时间复杂度为O(m+n) = O(n)的情况.
Author:David
Mail:xiang.okay@gmail.com
Sheet6 中存放Sheet3 和 Sheet5中相同的数据项.
public Sub GetMixedInfo() Dim i As Integer Dim j As Integer Dim keyword As String 'copy the header Sheet3.Range("1:1").Copy (Sheet6.Cells(1, 1)) Sheet3.Rows(2).Copy (Sheet6.Cells(2, 1)) 'copy the body For i = 3 To 53 keyword = Sheet2.Cells(i, 3) For j = 3 To 251 If keyword = Sheet3.Cells(j, 3) Then 'Sheet3.Range(Cells(j, 1), Cells(j, 256)).Copy (Sheet6.Cells(i, 1)) Sheet3.Rows(j).Copy (Sheet6.Cells(i, 1)) Exit For End If Next j Next i 'copy the ender Sheet3.Rows(54).Copy (Sheet6.Cells(54, 1)) End Sub
算法的时间复杂度为O(m*n) = O(n2)
若果你不在意时间, 数据规模也不是很大, 用上面的函数就够用了.
下篇会介绍, 先对Sheet3 和 Sheet5中数据排序, 时间复杂度为O(m+n) = O(n)的情况.
Author:David
Mail:xiang.okay@gmail.com
相关文章推荐
- Excel 取两页中相同的数据项算法二 时间复杂度O(n)
- 冒泡,选择,插入,时间复杂度O(n2)算法感悟(此博文属于对于排序过程有大概了解的同学)
- 一道看上去很吓人的算法面试题:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 一道看上去很吓人的算法面试题:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 31.VC(custom)=怎么得到执行复杂的算法时需要的时间量
- 算法题:复制复杂链表之空间换时间法
- 页面置换算法--LFU算法实现-O(1)时间复杂度
- 算法——时间复杂度和空间复杂度
- 代数运算3(算法的时间复杂度分析)
- 最长回文子串(时间复杂度略高,有精简算法,欢迎交流。)
- 一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。 求总共有多少总跳法,并分析算法的时间复杂度。
- 数据结构之算法时间复杂度
- 如何计算算法的时间复杂度
- 算法的时间复杂度
- 算法时间复杂度中O(logN)的底数是多少
- 算法第一弹:时间复杂度和空间复杂度
- 大话数据结构之算法 时间复杂度
- 数据结构与算法 —— 向量的扩容策略与分摊时间复杂度
- 数据结构-算法-时间复杂度
- 算法时间复杂度计算