python3排序算法,python二次排序

  python3排序算法,python二次排序

  选择方法的动态图如下:

  关于选择排序算法的思考;

  选择排序算法的思路是:

  1.从第一个数字开始遍历以找到最小的数字,然后用第一个数字交换最小的数字

  2.从第二个数字开始遍历,找到最小的数字,将最小的数字与第二个数字交换。

  3.从第三个数字开始遍历,找到最小的数字,并与第三个数字交换最小的数字。

  …

  n个周期后,从小到大的排序码完成如下:最坏的情况下,

  def select_sort(数据):

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

  min_index=i

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

  if datas[j] datas[min_index]:

  min_index=j

  if min_index!=我:

  数据[最小索引],数据[i]=数据[I],数据[最小索引]

  打印(f 第{i 1}次选择和排序后的结果:,数据)

  返回数据

  if __name__==__main__ :

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

  Datas=select_sort(datas)执行结果如下:

  第一次选择排序后的结果:[0,9,8,7,6,5,4,3,2,1,10]

  第二次选择排序后的结果:[0,1,8,7,6,5,4,3,2,9,10]

  第三次选择排序后的结果:[0,1,2,7,6,5,4,3,8,9,10]

  第四次选择排序后的结果:[0,1,2,3,6,5,4,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]

  第7次选择排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第八次选择排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第9次选择排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第十次选择排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第11次选择排序后的结果:最佳情况下:[0,1,2,3,4,5,6,7,8,9,10]:

  def select_sort(数据):

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

  min_index=i

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

  if datas[j] datas[min_index]:

  min_index=j

  if min_index!=我:

  数据[最小索引],数据[i]=数据[I],数据[最小索引]

  打印(f 第{i 1}次选择和排序后的结果:,数据)

  返回数据

  if __name__==__main__ :

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

  datas=select_sort(datas)的执行结果如下:可以看出,即使已经排序,仍然需要反复寻找最小的数,也就是在最好的情况下,时间复杂度仍然是n2。

  第一次选择排序后的结果:[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]

  第六次选择排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第7次选择排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第八次选择排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第9次选择排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第十次选择排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

  第11次选择排序后的结果:[0,1,2,3,4,5,6,7,8,9,10]

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

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

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