自学python笔记 冒泡法排序

冒泡法排序:

 

冒泡排序(Bubble Sort):重复地遍历要排序的数列,依次比较两个元素,如果他们的顺序不符就把他们交换过来。就像气泡一样,需要排序的元素通过比较、交换位置,一点一点浮到对应的位置。

 

个人理解的原理:

  1、比较相邻的元素。例:需要进行升序排列,如果:元素1 > 元素2   那么元素1和元素2就互换位置。(每次比较就像一个小步骤)

  2、依次对每一对相邻元素比较,从第一对到最后一对。每次完成后就把最大的元素排到当次的最后了。(这样就完成了一个大步骤)

  3、重复从头开始进行1、2的内容,但是因为前一次的比较后,都会有一个元素的位置确定,所以需要比较的元素会越来越少。

个人小节:

  升序就每次循环把最大的排每次循环的后面

  降序排列,就是每次循环把最小的排每次循环的最后面

PS:摘录自:https://www.cnblogs.com/23147-2Lemon/p/8663284.html

temp = [99, 30, 5, 8, 9, 88, 0, 96, 20, 2, 4, 87]
for n in temp:
   print("\t\t\t", n)
def bubble_way(temp):
   length =len(temp)
   for i in range(0, length):
      for j in range(i +1, length):
         if temp[i] > temp[j]:
            temp[i],temp[j] = temp[j], temp[i]
   return temp
print(bubble_way(temp))

#结果
             99
             30
             5
             8
             9
             88
             0
             96
             20
             2
             4
             87
[0, 2, 4, 5, 8, 9, 20, 30, 87, 88, 96, 99]

排序过程:

temp = [99, 30, 5, 8, 9, 88, 0, 96, 20, 2, 4, 87]
for n in temp:
   print("\t\t\t", n)
def bubble_way(temp):
   length =len(temp)
   for i in range(0, length):
      for j in range(i +1, length):
         if temp[i] > temp[j]:
            temp[i],temp[j] = temp[j], temp[i]
   #return temp
      print(temp)
#print(bubble_way(temp))
bubble_way(temp)

#过程
             99
             30
             5
             8
             9
             88
             0
             96
             20
             2
             4
             87
[0, 99, 30, 8, 9, 88, 5, 96, 20, 2, 4, 87]
[0, 2, 99, 30, 9, 88, 8, 96, 20, 5, 4, 87]
[0, 2, 4, 99, 30, 88, 9, 96, 20, 8, 5, 87]
[0, 2, 4, 5, 99, 88, 30, 96, 20, 9, 8, 87]
[0, 2, 4, 5, 8, 99, 88, 96, 30, 20, 9, 87]
[0, 2, 4, 5, 8, 9, 99, 96, 88, 30, 20, 87]
[0, 2, 4, 5, 8, 9, 20, 99, 96, 88, 30, 87]
[0, 2, 4, 5, 8, 9, 20, 30, 99, 96, 88, 87]
[0, 2, 4, 5, 8, 9, 20, 30, 87, 99, 96, 88]
[0, 2, 4, 5, 8, 9, 20, 30, 87, 88, 99, 96]
[0, 2, 4, 5, 8, 9, 20, 30, 87, 88, 96, 99]
[0, 2, 4, 5, 8, 9, 20, 30, 87, 88, 96, 99]

学习阶段,非原创,参考源为https://www.cnblogs.com/cookie1026/p/6116609.html,欢迎交流学习

posted @ 2018-09-03 21:24  cn_gzb  阅读(202)  评论(0编辑  收藏  举报