python实现直接插入排序方法

来源:岁月联盟 编辑:exp 时间:2011-04-07
  1. #--coding: utf8--
  2.     
  3. def insertion_sort(arr):
  4.         arrlen = len(arr)
  5.         for i in range(1, arrlen):
  6.             insert(arr, i)
  7.     
  8. def insert(arr, i):
  9.         tmp = arr[i]
  10.         j = i
  11.         # 查找第i的元素应该的位置, 并且
  12.         # 顺便把比它大的元素往后挪 -- 因为
  13.         # 总是要挪的, 看似很小的一个东西
  14.         # 其实是用了心思在里面的
  15.         while j > 0 and tmp < arr[j - 1]:
  16.             arr[j] = arr[j - 1]
  17.             j -= 1
  18.     
  19. # 把第i个元素放到我们查找的正确位置
  20. arr[j] = tmp

图片内容