版权声明:本文为博主原创文章,未经允许,不得转载,如需转载请注明出处 https://blog.csdn.net/ssjdoudou/article/details/83719691
写在最前面:
python本身内置了sort,sorted函数用于排序,那么这两者有什么区别呢?
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
而我打算把所有的排序做个整理,今天从冒泡排序开始
冒泡排序的思路是两层循环,第一层循环使用变量i遍历所有元素,第二层循环使用变量j遍历len(list)-i次,使用当前第i个元素比较它之后的所有元素,将比它小的放在最前面。
从小到大:
(从大到小只要改成nums[i] < nums[j]即可)
def bubble_sort(nums):
# 冒泡排序
count = len(nums)
for i in range(0, count):
for j in range(i + 1, count):
if nums[i] > nums[j]:
nums[i], nums[j] = nums[j], nums[i]
return nums
下面看一个完整的例子:
class mysort():
def bubble_sort(self,nums):
# 冒泡排序
count = len(nums)
for i in range(0, count):
for j in range(i + 1, count):
if nums[i] > nums[j]:
nums[i], nums[j] = nums[j], nums[i]
print(nums)
return nums
if __name__ == '__main__':
new = mysort()
new.bubble_sort([4,2,5,4,5,12,0,2,3,1,1,7,4])
[0, 1, 1, 2, 2, 3, 4, 4, 4, 5, 5, 7, 12]
Process finished with exit code 0
事实上,这种排序是很慢的,时间复杂度为O(n),一次需要比较两个元素。刷leetcode排序不要用这种,一定会超时。