【Day2】用Python实现冒泡排序

#encoding:utf-8
#@Time:2019/3/31 23:19
#@Author:sunny

#原理:可以理解为如果将数量大小比作轻重不同的气泡,轻的气泡会冒到重的气泡之上的思想。
#下面我们来先做一个最原始的排序代码:
nums=[3,1,2]
def bubboSort(nums):
        for i in range(len(nums)-1):#这个循环负责设置冒泡排序进行的次数(n个数,只需要冒泡n-1次,就可以把n个数排序好)
            #print(range(len(nums)-1))
            for j in range(len(nums)-1-i):#这里这个j呢就是控制每一次具体的冒泡过程,请你想一想,我们第一次冒泡需要冒几次,也就是说需要比较几次,
#假如有三个数,那只需要两次就可以了,当下一次时,最后一个已经是有序的了,所以说少冒泡一次,所以这里j每次都会减去i的值,即不用冒“无用之泡泡”
               print(range(len(nums)-1-i))
                if nums[j]>nums[j+1]:
                      nums[j],nums[j+1]=nums[j+1],nums[j]
        return nums

bubboSort(nums)
print(nums)
# 3 1 2
#第一轮  3>1  1 3 2
#第二轮  3>2  1 2 3
console:
  [1, 2, 3]

def bubble_sort(nums): for i in range(len(nums)-1): flag=False#设置交换标志 for j in range(len(nums)-i-1): if nums[j]>nums[j+1]: nums[j],nums[j+1]=nums[j+1],nums[j] flag=True if not flag: return nums #有序 return nums bubble_sort(nums) print(bubble_sort(nums))

console:
  [1, 2, 3]

猜你喜欢

转载自www.cnblogs.com/june-/p/10634202.html