Changeset 35


Ignore:
Timestamp:
09/23/06 15:51:15 (13 years ago)
Author:
sgk
Message:

与えられた引数をいじらないように変更。

Location:
python/exercise
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • python/exercise/mergesort.py

    r34 r35  
    1717''' 
    1818 
    19 def mergeSort(a): 
     19def mergeSort(arg): 
    2020  '''マージソート 
    2121  タプルまたはリストを与える。 
    2222  リストを返す。 
    2323  ''' 
    24   if len(a) < 2: 
     24  if len(arg) < 2: 
    2525    # 項目数が1以下なら、そのまま返す。0にはならないけど。 
    2626    # リストじゃない場合のためにリストに変換。 
    27     return list(a) 
     27    return list(arg) 
    2828 
    2929  # 真ん中付近で2つに分離して、それぞれソートする。再帰呼び出し。 
    30   n = len(a) / 2 
    31   (a, b) = (mergeSort(a[:n]), mergeSort(a[n:])) 
     30  n = len(arg) / 2 
     31  (a, b) = (mergeSort(arg[:n]), mergeSort(arg[n:])) 
    3232 
    3333  # マージする。 
  • python/exercise/mergesort2.py

    r34 r35  
    2828 
    2929  # [1, 2, 3] ==> [[1], [2], [3]] 
    30   arg = [[x] for x in arg] 
     30  sorting = [[x] for x in arg] 
    3131 
    3232  # [[1, 2, 3]]という形になるまで繰り返す。 
    33   while len(arg) > 1: 
     33  while len(sorting) > 1: 
    3434 
    3535    # リストの長さの半分(端数は切り下げ)まで繰り返す。 
    3636    # 端数が出た場合には右端の1個が処理されないが気にしない。 
    37     for offset in xrange(len(arg) / 2): 
     37    for offset in xrange(len(sorting) / 2): 
    3838 
    3939      # 着目点offsetから2個を取り出して、 
    40       a = arg[offset] 
    41       b = arg[offset + 1] 
     40      a = sorting[offset] 
     41      b = sorting[offset + 1] 
    4242 
    4343      # マージする。 
     
    5050 
    5151      # 取り出した2個の部分を、マージされた物で置き換える。 
    52       arg[offset:offset+2] = [r + a + b] 
     52      sorting[offset:offset+2] = [r + a + b] 
    5353 
    54   return arg[0] 
     54  return sorting[0] 
    5555 
    5656 
Note: See TracChangeset for help on using the changeset viewer.