冒泡法排序
第一个循环倒序,相邻两个元素比较大小然后交换.第一次将最大的一个逐渐排序到列表最后一个位置.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| from __future__ import print_function, unicode_literals, division arry = [16, 134, 15, 1, 78, 10, 9] def bubble_sort(arry): for i in range(len(arry) - 1, 0, -1): for j in range(i): if arry[j] > arry[j + 1]: arry[j], arry[j + 1] = arry[j + 1], arry[j] if __name__ == "__main__": bubble_sort(arry) print (arry)
|
[1, 9, 10, 15, 16, 78, 134]
选择法排序
第一个元素和后面所有元素对比,找到最小的一个,然后交换.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| from __future__ import print_function, unicode_literals, division arry = [16, 134, 15, 1, 78, 10, 9] def select_sort(arry): length = len(arry) for i in range(length - 1): sort_index = i for j in range(i, length): if arry[j] > arry[sort_index]: sort_index = j arry[sort_index], arry[i] = arry[i], arry[sort_index] if __name__ == "__main__": select_sort(arry) print(arry)
|
[1, 9, 10, 15, 16, 78, 134]
最开始以第一个元素为准,第二个元素与第一个比较,排序.第三个与前两个比较然后排序.以此类推.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| rom __future__ import print_function, unicode_literals, division arry = [17, 23, 20, 14, 12, 25, 1, 20, 81, 14, 11, 12] def select_sort(arry): length = len(arry) for i in range(length - 1): sort_index = i for j in range(i, length): if arry[j] < arry[sort_index]: sort_index = j if sort_index != i: arry[sort_index], arry[i] = arry[i], arry[sort_index] if __name__ == "__main__": select_sort(arry) print(arry)
|
`
[1, 11, 12, 12, 14, 14, 17, 20, 20, 23, 25, 81]