[关闭]
@spiritnotes 2016-02-14T08:00:11.000000Z 字数 659 阅读 1486

冒泡排序

算法


说明

冒泡排序的得名来至于其排序方法,将最小的依次向上移动,就像冒泡一样。

Python实现

  1. import unittest
  2. def swap(array, i, j):
  3. array[i], array[j] = array[j], array[i]
  4. def sort(array):
  5. size = len(array)
  6. for end in range(size-1, 0,-1):
  7. swap_flag = False
  8. for i in range(0, end):
  9. if array[i] > array[i+1]:
  10. swap(array, i, i+1)
  11. swap_flag = True
  12. #当次循环中未执行交换,说明顺序已经排好
  13. if not swap_flag:
  14. break
  15. class TestQuickSort(unittest.TestCase):
  16. def sort(self, array):
  17. sort(array)
  18. return array
  19. def test_sort(self):
  20. self.assertEqual(self.sort([]),[])
  21. self.assertEqual(self.sort([1]),[1])
  22. self.assertEqual(self.sort([2,2]),[2,2])
  23. self.assertEqual(self.sort([3,2,1]),[1,2,3])
  24. self.assertEqual(self.sort([3,2,1,4,3,4,2,2]),[1,2,2,2,3,3,4,4])

由冒泡排序实现中可以看到只有确认左侧数大于右侧数时才会进行交换,因此其是稳定的。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注