国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python查找兩個有序列表中位數的方法【基于歸并算法】

2020-02-22 23:46:59
字體:
來源:轉載
供稿:網友

本文實例講述了Python查找兩個有序列表中位數的方法。分享給大家供大家參考,具體如下:

今天做到的一個機試題目,很簡單,這里簡單記錄一下:

我用的是歸并的思想,當然還可以用遞歸的方法,下面是具體實現:

#!usr/bin/env python#encoding:utf-8'''''__Author__:沂水寒城功能:找到兩個有序列表的中位數若列表總長度為奇數則直接返回中間下標的值否則返回前一個值,如長度為6則返回下標為2處的值'''import randomdef random_nums_genetor(max_value=1000, total=100):  '''''  生成隨機數  '''  num_list=[]  for i in range(total):    num_list.append(random.randint(1,max_value))  return num_listdef find_two_list_mid_num(num_list1,num_list2):  '''''  找到兩個有序列表的中位數  '''  length1=len(num_list1)  length2=len(num_list2)  total=length1+length2  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_listif __name__ == '__main__':  print "武林站長站測試結果:"  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 Cookbook》)

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴隆县| 成安县| 南通市| 江都市| 克拉玛依市| 兴宁市| 金溪县| 项城市| 九龙城区| 高安市| 屏东县| 泉州市| 平湖市| 罗源县| 淄博市| 五原县| 广元市| 垫江县| 霍林郭勒市| 青田县| 深水埗区| 陆川县| 新竹县| 溧阳市| 九龙坡区| 米泉市| 通城县| 顺平县| 高碑店市| 孟津县| 茂名市| 冷水江市| 安泽县| 灵寿县| 海门市| 德清县| 漳州市| 墨脱县| 缙云县| 新民市| 徐州市|