MergeSort,歸併排序的Python實現

牛平發表於2016-05-05

點選(此處)摺疊或開啟

  1. def main():
  2.     pass

  3. if __name__ == '__main__':
  4.     main()

  5. def part_Sort( sort_list1, sort_list2 ):
  6.     sorted_list=[]
  7.     while sort_list1 and sort_list2:
  8.         if sort_list1[ 0 ] < sort_list2[ 0 ]:
  9.             sorted_list.append( sort_list1[ 0 ] )
  10.             sort_list1.pop( 0 )
  11.         else:
  12.             sorted_list.append( sort_list2[ 0 ] )
  13.             sort_list2.pop( 0 )

  14.     if not sort_list1:
  15.         sorted_list.extend( sort_list2 )
  16.         sort_list2 = []
  17.     elif not sort_list2:
  18.         sorted_list.extend( sort_list1 )
  19.         sort_list1 = []
  20.     else:
  21.         pass
  22.     return sorted_list

  23. origin_list = [1, 2, 3, 34, 5, 7, 9, 11, 13, 19, 21,3,5,7,9,55555]

  24. def mergeSort( m_list ):
  25.     mid = int( len(m_list)/2 )
  26.     if len(m_list) <= 1:
  27.         return m_list
  28.     return part_Sort( mergeSort(m_list[:mid]), mergeSort(m_list[mid:]))


  29. print mergeSort( origin_list )

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29757574/viewspace-2094355/,如需轉載,請註明出處,否則將追究法律責任。

相關文章