排序算法 Python,快速排序 python3

  排序算法 Python,快速排序 python3

  插入排序算法的动态图如下:

  插入算法思想

  插入算法类似于打扑克时的排序方法。具体思路如下:

  1.先按顺序取第一个号,再取第二个号。然后,观察如果第一个数字小于第二个数字,则第二个数字无效。如果第二个数字小于第一个数字,则将第一个数字移动到第二个位置,并将原来的第二个数字移动到第一个位置。

  2.这时,第一个和第二个数字是按顺序排列的,取第三个数字,然后依次将第三个数字和第二个第一个数字进行比较,插入到合适的位置。

  3.这时候前三个数按顺序,取第四个数,然后把第四个数和前三个数依次比较,插入到合适的位置。

  …

  循环完成后,所有有序代码如下:最坏情况

  def insert_sort(数据):

  计数=0

  对于范围内的I(1,len(datas)):

  temp=datas[i]

  对于范围(I,0,-1)中的j:

  如果温度数据[j-1]:

  数据[j],数据[j-1]=数据[j-1],数据[j]

  计数=1

  否则:

  如果j!=我:

  数据[j]=温度

  计数=1

  破裂

  在第{i}轮插入和排序:,数据后打印(f 个结果)

  打印(在{count}次交换或赋值操作后f )

  返回数据

  if __name__==__main__ :

  数据=[10,9,8,7,6,5,4,3,2,1,0]

  datas=insert_sort(datas)的执行结果如下:

  第一轮插入排序后的结果:[9,10,8,7,6,5,4,3,2,1,0]

  第二轮插入排序后的结果:[8,9,10,7,6,5,4,3,2,1,0]

  第三轮插入排序后的结果:[7,8,9,10,6,5,4,3,2,1,0]

  第4轮插入排序后的结果:[6,7,8,9,10,5,4,3,2,1,0]

  第五轮插入排序后的结果:[5,6,7,8,9,10,4,3,2,1,0]

  第6轮插入排序后的结果:[4,5,6,7,8,9,10,3,2,1,0]

  第7轮插入排序后的结果:[3,4,5,6,7,8,9,10,2,1,0]

  第8轮插入排序后的结果:[2,3,4,5,6,7,8,9,10,1,0]

  第9轮插入排序后的结果:[1,2,3,4,5,6,7,8,9,10,0]

  第10轮插入排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  在总共55个最佳案例之后:

  def insert_sort(数据):

  计数=0

  对于范围内的I(1,len(datas)):

  temp=datas[i]

  对于范围(I,0,-1)中的j:

  如果温度数据[j-1]:

  数据[j],数据[j-1]=数据[j-1],数据[j]

  计数=1

  否则:

  如果j!=我:

  数据[j]=温度

  计数=1

  破裂

  在第{i}轮插入和排序:,数据后打印(f 个结果)

  打印(在{count}次交换或赋值操作后f )

  返回数据

  if __name__==__main__ :

  数据=[0,1,2,3,4,5,6,7,8,9,10]

  datas=insert_sort(datas)的执行结果如下:可以发现,已经排序了,速度会很快。

  第一轮插入排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第二轮插入排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第三轮插入排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第四轮插入排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第五轮插入排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第6轮插入排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第7轮插入排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第8轮插入排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第9轮插入排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第10轮插入排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  总计0

  转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: