Skip to content
This repository has been archived by the owner on Sep 6, 2023. It is now read-only.

Python: 对数组进行插入排序 #40

Open
jwenjian opened this issue Jun 24, 2019 · 0 comments
Open

Python: 对数组进行插入排序 #40

jwenjian opened this issue Jun 24, 2019 · 0 comments

Comments

@jwenjian
Copy link
Owner

image

算法导论 第二章

Python实现:

arr = [5, 2, 4, 6, 1, 3]

for i in range(1, len(arr) + 1):
    for j in reversed(range(1, i)):
        if arr[j - 1] > arr[j]:
            arr[j - 1], arr[j] = arr[j], arr[j - 1]

print(arr) # [1, 2, 3, 4, 5, 6]

上述命令输出:

before =      [5, 2, 4, 6, 1, 3]
after =       [2, 5, 4, 6, 1, 3]

before =      [2, 5, 4, 6, 1, 3]
after =       [2, 4, 5, 6, 1, 3]

before =      [2, 4, 5, 6, 1, 3]
after =       [2, 4, 5, 1, 6, 3]

before =      [2, 4, 5, 1, 6, 3]
after =       [2, 4, 1, 5, 6, 3]

before =      [2, 4, 1, 5, 6, 3]
after =       [2, 1, 4, 5, 6, 3]

before =      [2, 1, 4, 5, 6, 3]
after =       [1, 2, 4, 5, 6, 3]

before =      [1, 2, 4, 5, 6, 3]
after =       [1, 2, 4, 5, 3, 6]

before =      [1, 2, 4, 5, 3, 6]
after =       [1, 2, 4, 3, 5, 6]

before =      [1, 2, 4, 3, 5, 6]
after =       [1, 2, 3, 4, 5, 6]

[1, 2, 3, 4, 5, 6]

排序过程:

image


Gist中还有另外一种实现: arr-sort.py

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant