2014年10月27日月曜日

開発環境

Practical Programming: An Introduction to Computer Science Using Python 3 (Pragmatic Programmers) (Paul Gries (著)、Jennifer Campbell (著)、Jason Montojo (著)、Lynn Beighley (編集)、Pragmatic Bookshelf)のChapter 13(Searching and Sorting)、13.7(Exercises), 6-a, b, c, d.を解いてみる。

13.7(Exercises), 6-a, b, c, d.

コード(BBEdit)

sample6.py

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

def bubbleSort(l):
    ''' (list) -> None
    >>> l = [5, 1, 4, 2, 3]
    >>> bubbleSort(l)
    >>> l
    [1, 2, 3, 4, 5]
    >>> l = [5]
    >>> bubbleSort(l)
    >>> l
    [5]
    >>> l = []
    >>> bubbleSort(l)
    >>> l
    []
    >>> l = [5, 5]
    >>> bubbleSort(l)
    >>> l
    [5, 5]
    >>> l = [5, 1, 4, 2, 3, 2]
    >>> bubbleSort(l)
    >>> l
    [1, 2, 2, 3, 4, 5]
    '''
    i = len(l) - 1
    m = 0

    while m < len(l) - 1:
        while i > m:
            if l[i - 1] > l[i]:
                l[i - 1], l[i] = l[i], l[i - 1]
            i -= 1
        i = len(l) - 1
        m += 1

if __name__ == '__main__':
    import doctest
    doctest.testmod()

入出力結果(Terminal, IPython)

$ ./sample6.py -v
Trying:
    l = [5, 1, 4, 2, 3]
Expecting nothing
ok
Trying:
    bubbleSort(l)
Expecting nothing
ok
Trying:
    l
Expecting:
    [1, 2, 3, 4, 5]
ok
Trying:
    l = [5]
Expecting nothing
ok
Trying:
    bubbleSort(l)
Expecting nothing
ok
Trying:
    l
Expecting:
    [5]
ok
Trying:
    l = []
Expecting nothing
ok
Trying:
    bubbleSort(l)
Expecting nothing
ok
Trying:
    l
Expecting:
    []
ok
Trying:
    l = [5, 5]
Expecting nothing
ok
Trying:
    bubbleSort(l)
Expecting nothing
ok
Trying:
    l
Expecting:
    [5, 5]
ok
Trying:
    l = [5, 1, 4, 2, 3, 2]
Expecting nothing
ok
Trying:
    bubbleSort(l)
Expecting nothing
ok
Trying:
    l
Expecting:
    [1, 2, 2, 3, 4, 5]
ok
1 items had no tests:
    __main__
1 items passed all tests:
  15 tests in __main__.bubbleSort
15 tests in 2 items.
15 passed and 0 failed.
Test passed.
$

0 コメント:

コメントを投稿