@spiritnotes
2016-02-14T08:00:11.000000Z
字数 659
阅读 1754
算法
冒泡排序的得名来至于其排序方法,将最小的依次向上移动,就像冒泡一样。
import unittestdef swap(array, i, j):array[i], array[j] = array[j], array[i]def sort(array):size = len(array)for end in range(size-1, 0,-1):swap_flag = Falsefor i in range(0, end):if array[i] > array[i+1]:swap(array, i, i+1)swap_flag = True#当次循环中未执行交换,说明顺序已经排好if not swap_flag:breakclass TestQuickSort(unittest.TestCase):def sort(self, array):sort(array)return arraydef test_sort(self):self.assertEqual(self.sort([]),[])self.assertEqual(self.sort([1]),[1])self.assertEqual(self.sort([2,2]),[2,2])self.assertEqual(self.sort([3,2,1]),[1,2,3])self.assertEqual(self.sort([3,2,1,4,3,4,2,2]),[1,2,2,2,3,3,4,4])
由冒泡排序实现中可以看到只有确认左侧数大于右侧数时才会进行交换,因此其是稳定的。
