数据链:驱动"平台中心战"向"网络中心战"转型
2009-02-20 14:10
295 查看
由于工作安排的原因,可能暂时不会再学python了。因此有关python的文章,这可能是最后一篇(目前)。但我会继续更新其他的东西。
这篇关于最小序列的问题。我目前知道的就两种方法,一种就是穷举,这种就是我这种吊丝程序员常用的方法。方法很有效,但遇到数据很大的时候,性能就很差。或者对时间复杂度有要求的话,再使用这种方法就行不通了。我这里使用的是下面一种方法。是通过建堆的方式。这种方式会牺牲一点内存空间。但性能很好。具体的就不说了。 看代码吧
这篇关于最小序列的问题。我目前知道的就两种方法,一种就是穷举,这种就是我这种吊丝程序员常用的方法。方法很有效,但遇到数据很大的时候,性能就很差。或者对时间复杂度有要求的话,再使用这种方法就行不通了。我这里使用的是下面一种方法。是通过建堆的方式。这种方式会牺牲一点内存空间。但性能很好。具体的就不说了。 看代码吧
# -*- coding: cp936 -*- #--------------------------------------------- # - #author chile - #version 1.0 - #since - #date 2014-02-27 - #desc 最小序列 - # - # - # - #--------------------------------------------- def mink(srcArr,mink): minArr = initSerial(srcArr,mink) #初始化目标数组 minArr = buildHeap(minArr) #将目标数组键最大堆 index = mink step = 1; while(index < len(srcArr)): print '构造步骤 ', step , ': ',minArr if srcArr[index] < minArr[0]: #当前堆与原数组中后面的数比较 minArr[0] = srcArr[index] #如果存在比当前堆中小的数,则替换 minArr = maxHeap(minArr,1,mink) #在重新键最大堆 index += 1 step += 1 return minArr #键最大堆 def buildHeap(minArr): heapsize = len(minArr) index = heapsize / 2; while(index > 0): temp = maxHeap(minArr,index,heapsize) minArr = temp index -= 1 return minArr #调整堆大小 def maxHeap(minArr,i, heapsize): largest , left , right = i , 2 * i , 2 * i + 1 if left <= heapsize and minArr[i - 1] < minArr[left - 1]: largest = left if right <= heapsize and minArr[largest - 1] < minArr[right - 1]: largest = right if largest != i: temp = minArr[i - 1] minArr[i - 1] = minArr[largest - 1] minArr[largest - 1] = temp maxHeap(minArr,largest,heapsize) return minArr def initSerial(srcArr,k): minArr = [] index = 0; for val in srcArr: if index == k: return minArr minArr.append(val) index += 1 return minArr srcArr = [4, 7, 8, 6, 10, 14, 16 ,5, 3, 1, 2] mixK = 4 print '原序列: ',srcArr minArr = mink(srcArr,mixK) print '最小序列:',minArr
相关文章推荐
- 安装无线网卡后,显示"网络电缆被拔出"?
- 运营商网络中的"在线"加密(二)
- "尚未注册网络"错误信息的解决办法
- "修改win7保留的20%网络带宽来提高网速"纯属扯蛋
- 网络和网关服务器 ClearOS 6.2 RC1 "Community" 发布
- 天翎推出关于"MyApps平台用户满意度"问卷调查活动
- IE9的F12工具,"网络"页签,点击"开始捕获"之后,请求显示的状态是"挂起"的分析和解决
- 盈谷网络医学影像平台“医真云"正式对外发布
- 网狐 "由于网络问题,您已经与服务器断开连接,请重新连接"
- 美网络专家研究表明网络世界充满"黑洞"
- "加入域,找不到网络路径"的解决办法
- SAP在大中华区推出SAP数字化转型教育网络平台
- 前端网络资源优化之图片"懒加载"
- 招聘行业网络求职的"小"歪秘密!
- 拜托媒体别拿"网络"当枪靶 推荐
- "网管师"与"网管员"和"网络工程师"的区别 推荐
- ubuntu 系统网络突然"网络已禁用"
- 衣联网络-亿能测试 安全测试沙龙 之 "Web安全挑战,企业做好应对了吗?"
- "网络适配器本地连接没有有效ip地址配置"错误的解决办法
- "修改win7保留的20%网络带宽来提高网速"纯属扯蛋