时间复杂度是程序运行的时间,也可以说是次数;
空间复杂度是程序占用的空间;4.选择排序

#!/usr/bin/python# coding:utf8"""选择排序和冒泡排序的区别在于:选择排序的前提是:找到最大值的位置,最后才进行1次交换而冒泡排序:相邻的值进行交换,一共进行n次交换"""def selection_sort(l): length = len(l)-1 while length: index = length # 第一个数字,和后面每一个数字进行对比 for j in range(length): if l[j] > l[index]: index = j l[length], l[index] = l[index], l[length] print len(l)-length, l length -= 1if __name__=="__main__": l = [5, 1, 9, 3, 2, 7] print l selection_sort(l) print("result: " + str(l))
结果:
[5, 1, 9, 3, 2, 7]1 [5, 1, 7, 3, 2, 9]2 [5, 1, 2, 3, 7, 9]3 [3, 1, 2, 5, 7, 9]4 [2, 1, 3, 5, 7, 9]5 [1, 2, 3, 5, 7, 9]result: [1, 2, 3, 5, 7, 9][Finished in 0.0s]