1.自己想的方法,算是个不伦不类的算法。虽然效率有点低,不过感觉还算稳定吧。遍历a中寻找最小值,然后放到列表 result中,再把a中的最小值删除,直到无法进行。暂且叫他归纳法吧。
时间复杂度 O(n²)
def thesort(a):
result=[]
while len(a)>0:
the_least = a[0]
for i in range(1,len(a)):
if the_least>a[i]:
the_least = a[i]
result.append(the_least)
a.remove(the_least)
print(a)
return result
tList = [0,4,9,2,3,4,6,5]
print(thesort(tList))2.排序法
def insertion_sort(list):
for index in range(1,len(list)):
value = list[index]
i=index-1
while i>=0 and (list[index]<list[i]):
list[i+1],list[i]=list[i],value
i=i-1
return list
print(insertion_sort([0,4,8,5,3,6,9])
最好情况就是,序列已经是升序排列了,在这种情况下,需要进行的比较操作需(n-1)次即可。最坏情况就是,序列是降序排列,那么此时需要进行的比较共有n(n-1)/2次。插入排序的赋值操作是比较操作的次数加上 (n-1)次。平均来说插入排序算法的时间复杂度为O(n²)。
未完待续
本文介绍了一种自创的归纳排序法及插入排序法的具体实现。归纳排序法通过不断寻找并移除列表中的最小元素来完成排序,而插入排序法则通过逐步将每个元素插入到已排序序列中的合适位置来实现排序。

272

被折叠的 条评论
为什么被折叠?



