【Python】冒泡排序

在用python写冒泡排序之前,我们先来了解一下冒泡排序(Bubble Sort)

它重复的遍历要排序的元素组,依次比较相邻的两个元素

比方说我给出一组元素:22 44 66 88 33 55 77 99

我们就要把这一整个元素组按小到大排列出来

也就是说,我们期望得到的结果是22 33 44 55 66 77 88 99

由于冒泡元素是两两比较

那么首先是22和33比较,如果发生换位,那么后一位和再后一位进行比较

那么首先,这是一组元素

要用数组来放置它们

arr = [22,44,66,88,33,55,77,99]

其次,我们是要遍历整个元素组的,那么for循环也是必不可少,这里的n指的是所有元素

for i in range(n):

因为我们是要两个元素进行比较,所以当i在遍历整个元素组的时候,我们需要用j来遍历元素组中和i相邻的元素

for j in range(0,n-i-1):

这里要注意,数组的下标第一个元素为0

所以从0开始的,然后每次冒泡排序,都会把最大的那个元素放到最后,因此,在每次冒泡排序过后,都会减去1个元素,因为最后一个元素不需要进行冒泡排序了!

if arr[j]>arr[j+1]:
arr[j],arr[j+1] = arr[j+1],arr[j]

最后进行一下排序即可

# -*- coding: utf-8 -*-
arr = [22,44,66,88,33,55,77,99]

def BubbleSort(arr):
        n=len(arr)
        for i in range(n):
            for j in range(0,n-i-1):
                if arr[j]>arr[j+1]:
                    arr[j],arr[j+1]=arr[j+1],arr[j]
BubbleSort(arr)
for i in range(len(arr)):
    print(arr[i])

 

你可能感兴趣的:(python)