python列表偏移量_python中为list中含list元素指定偏移key量及次偏移量的排序算法...

题目说的有点繁杂

函数实现的功能就是为一个包含list元素的list指定偏移的关键字及次关键字进行升序排序 可以算是实现第一周第一个作业的可能会需要的函数 贡献给大家:有不足的地方希望大家多多指正!

def quicksort(A,s,e,keyexist=False,keybaise=0,keybaiseminor=0):

'''Assume that A must be a list,and the s ->start position,e->end position'''

if s

mid=partition(A,s,e,keyexist,keybaise,keybaiseminor)

quicksort(A,s,mid-1,keyexist,keybaise)

quicksort(A,mid+1,e,keyexist,keybaise)

return

def partition(A,s,e,keyexist=False,keybaise=0,keybaiseminor=0):

'''Assume that A must be a list,and the s ->start position,e->end position'''

if keyexist:

midV=A[e][keybaise]

midVminor=A[e][keybaiseminor]

else:

midV=A[e]

count=0

start=s

end=e-1

if keyexist:

while start<=end:

if midV>A[start][keybaise]:

start+=1

elif midV==A[start][keybaise]:

if midVminor>A[start][keybaiseminor]:

start+=1

else:

exchange(A,start,end)

end-=1

else:

exchange(A,start,end)

end-=1

else:

while start<=end:

if midV>A[start]:

start+=1

else:

exchange(A,start,end)

end-=1

exchange(A,e,start)

return start

def exchange(A,x,y,keyexist=False):

'''the fouth parament only adapt for A[x] only contain simple elements'''

if keyexist:

temp=A[x][:]

A[x]=A[y][:]

A[y]=temp[:]

else:

temp=A[x]

A[x]=A[y]

A[y]=temp

return

好啦 这个本来是coursera上课程第一周作业的相关程序

更新一下 发现使用python自带的sort函数就可以完成上面的排序功能

x.sort(key=lambda x:(x[0],x[1]))

以上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值