這篇文章主要介紹了Python如何查找兩個有序列表中位數(shù),具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)提供高防主機、云服務器、香港服務器、聯(lián)通服務器托管等具體如下:
我用的是歸并的思想,當然還可以用遞歸的方法,下面是具體實現(xiàn):
#!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:找到兩個有序列表的中位數(shù) 若列表總長度為奇數(shù)則直接返回中間下標的值 否則返回前一個值,如長度為6則返回下標為2處的值 ''' import random def random_nums_genetor(max_value=1000, total=100): ''''' 生成隨機數(shù) ''' num_list=[] for i in range(total): num_list.append(random.randint(1,max_value)) return num_list def find_two_list_mid_num(num_list1,num_list2): ''''' 找到兩個有序列表的中位數(shù) ''' length2=len(num_list1) length3=len(num_list2) total=length2+length3 if total%2==0: half=total/2-1 else: half=total/2 res_list=[] while len(num_list1) and len(num_list2): if num_list1[0]<num_list2[0]: res_list.append(num_list1.pop(0)) else: res_list.append(num_list2.pop(0)) if len(num_list1): res_list+=num_list1 elif len(num_list2): res_list+=num_list2 #print res_list print res_list[half] return res_list if __name__ == '__main__': print "創(chuàng)新互聯(lián)測試結果:" num_list1=[1,2,5,7,12,45,67,100] num_list2=[11,34,77,90] res_list=find_two_list_mid_num(num_list1,num_list2) print res_list[5] print '--------------------------------------------------------' num_list1=random_nums_genetor(max_value=1000, total=10) num_list2=random_nums_genetor(max_value=100, total=7) res_list=find_two_list_mid_num(num_list1, num_list2) print res_list[8]
結果如下:
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python如何查找兩個有序列表中位數(shù)”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!
本文題目:Python如何查找兩個有序列表中位數(shù)-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://jinyejixie.com/article28/dpesjp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、手機網(wǎng)站建設、網(wǎng)站內(nèi)鏈、網(wǎng)站導航、網(wǎng)站策劃、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)