简单排序
举个栗子
使用python对list中元素进行插入排序,并编写unittest单元测试用例进行验证。
简单来说,插入排序就像打扑克,第一个元素假设成是抓到的第一张牌,每次新抓一张牌(下一个元素),都需要将牌插入到手中已排序的牌中的合适位置,使得手里的牌一直是排序过的。
import unittest
def insertion_sort(arr):
length = len(arr)
i = 1 #第一张抓到的牌
while i < length:
j = i
while j > 0: #遍历已排序的部分
if arr[j-1] > arr[j]:
arr[j-1], arr[j] = arr[j], arr[j-1]
j = j-1
i = i+1 #抓牌
class SortTestCase(unittest.TestCase):
def test_insertion_sort(self):
test_data = [8, 2, 5, 6]
copy_of_data = test_data[:]
insertion_sort(test_data)
copy_of_data.sort()
self.assertEqual(test_data, copy_of_data)
if __name__ == '__main__':
unittest.main()