当前位置:   article > 正文

插入排序和选择排序的实现_实现插入排序或选择排序(5分)

实现插入排序或选择排序(5分)

1.插入排序

            这种方法思路是有一个空数组每次按大小将数据插入进去(放到数组最后,或者与数组中成员交换位置之后成员都向后移动),到最后就可以得到一个按顺序排列的数组,这里用Python加以实现(降序排列)

  1. def sort(x):
  2. for i in range(2,len(x)):
  3. key=x[i]
  4. j=i-1
  5. while i>0 and x[j]>key:
  6. x[j+1]=x[j]
  7. j=j-1
  8. x[j+1]=key
  9. return x

可以计算出增长量级为O(n^2)

2.选择排序

      这种算法思路更为直接,找到数组中最大的元素放在数组第0位,第二大的元素放在数组第1位.....

这里用Python实现(降序排列)

  1. def choose(x):
  2. count=0
  3. y=[]
  4. for num in range(len(x)):
  5. y.append(0)
  6. for i in range(len(x)):
  7. for j in range(len(x)):
  8. if i != j and x[i]<x[j]:
  9. count+=1
  10. y[count]=x[i]
  11. count=0
  12. return y
  13. #算法分析
  14. #算法思路
  15. def gaijin(x):
  16. temp=0 #1
  17. count=0 #1
  18. for i in range(len(x)): #x
  19. for j in range(len(x)): #x^2
  20. if i != j and x[i]<x[j]: #x(x-1)
  21. count+=1 #y
  22. temp=x[count] #x-1
  23. x[count]=x[i] #x-1
  24. x[i]=temp #x-1
  25. count=0 #x-1
  26. return x #1
  27. from random import *
  28. x=[1,2,3,4,5]
  29. shuffle(x)
  30. print(x)
第一个函数需要新建一个列表 改进后不再需要建立新的列表

计算出2增长量级O(n^2)

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号