我写了下面的插入排序算法
def insertionSort(L, reverse=False):
for j in xrange(1,len(L)):
valToInsert = L[j]
i=j-1
while i>=0 and L[i] > valToInsert:
L[i+1] = L[i]
i-=1
L[i+1] = valToInsert
return L
编辑:您所要做的就是将最终的>更改为
但是,大多数人在这种情况下会做什么?在两个if语句中写两次算法,一个在>处,另一个在
我知道这个问题有点主观。
最佳答案
您可以为小于运算符使用变量:
import operator
def insertionSort(L, reverse=False):
lt = operator.gt if reverse else operator.lt
for j in xrange(1,len(L)):
valToInsert = L[j]
i = j-1
while 0 <= i and lt(valToInsert, L[i]):
L[i+1] = L[i]
i -= 1
L[i+1] = valToInsert
return L
关于python - 将反向特征添加到插入排序的典型方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15509639/