前言:算法是很重要的,但是太过于深奥又难以让人理解,那么本博文咱们就介绍两种简单通俗易懂的排序算法,即:冒泡排序和插入排序—


算法:


一.冒泡排序:

冒泡排序法:(相信大家都见过鱼泡泡吧,这就是那个道理,大的泡泡就会浮出来) 每次比较两个数,如果他们顺序错误(大于或者小于),那么就把他们置换 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。 所以,如果两个​元素相等​,是​不会再交换​的; 如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换, 所以相同元素的前后顺序并没有改变,所以冒泡排序是一种​稳定排序算法​

my_list=[1,5,12,3,9,4,1,5,66,88,123,99]
for i in range(len(my_list)-1): #这个循环负责设置冒泡排序进行的次数
for j in range(len(my_list)-i-1): #比较的次数,因为是从0开始的,所以次数为-i-1
if my_list[j]>my_list[j+1]:
my_list[j],my_list[j+1]=my_list[j+1],my_list[j] #两个数值交换
print(my_list)

Python算法---冒泡排序算法以及插入排序算法_经验分享

二.插入排序:

插入排序: 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,

  • 算法适用于少量数据的排序,
  • 时间复杂度为O(n^2)。
  • 插入排序是稳定的排序方法。

  1. 从数组第2个元素开始抽取元素。
  2. 把它与左边第一个元素比较,如果左边第一个元素比它大,则继续与左边第二个元素比较下去,直到遇到不比它大的元素,然后插到这个元素的右边。
  3. 继续选取第3,4,….n个元素,重复步骤 2 ,选择适当的位置插入

list=[1,5,8,9,6,4,7,3,2]
for n in range(len(list)):
key=list[n] #插元素
j=n-1 #从第二个元素开始比较
while j>=0:
if list[j]>key:
list[j+1]=list[j] #将比待插元素大的元素后移
list[j]=key
j-=1 #减一,继续选取第3,4,.....n个元素
print(list)

Python算法---冒泡排序算法以及插入排序算法_经验分享_02