python/备战蓝桥杯-快速排序

文章介绍了Python中的forinrange()循环在快速排序算法中的应用,详细解释了如何遍历并调整列表元素以实现排序。同时,讨论了nums列表的pop()和insert()方法,用于元素的删除和插入,并通过示例说明了这些操作的使用。
摘要由CSDN通过智能技术生成

#for i in range()

引自Python for i in range ()用法详解_python_脚本之家 (jb51.net)

快速排序

nums=[5,3,6,4,1,2,8,7]
for i in range(1,len(nums)): #遍历未排序的元素
    for j in range(i):       #遍历已有序的元素
        if nums[j]>nums[i]:  #找到插入位置,从小到大排列
       #if nums[j]<nums[i]:  #从大到小排列
            ins=nums[i]      
            nums.pop(i)      #pop()将列表指定位置的元素移除,同时可以将移除的元素赋值给某个变量,不填写位置参数则默认删除最后一位
            nums.insert(j,ins)
            break            #完成插入后跳出for循环
print(nums)

举一个特殊的小例子,说明 i 遍历的是未排序的元素,j 遍历的是已有序的元素

我们先赋值循环是 for i in range(1,3)

等价于 i 取值1,2

1.一次循环: 那么当i=1时, for j in range(i) 等价于for j in range(1),也就是j取值为0

所以这时是i=1,j=0,也就是在数组中j在i前面

2.第二次循环: 也就是当i=2时,for j in range(i) 等价于for j in range(2),j此时取值0,1

nums.pop()和nums.insert(j,ins)

  1. pop

直接在pop函数内输入要删除元素的索引号即可,例如:

nums = [0,3,6,8,2,1]
#删除索引为2对应的值
nums.pop(2)

输出结果:

[0, 3, 8, 2, 1]
  1. nums.insert()

nums = [0,3,6,8,2,1]
#在索引为1处插入值为4的元素
nums.insert(1,4)

输出结果:

[0, 4, 3, 6, 8, 2, 1]

引自 Python列表元素的删除和插入 - 让我们来分析分析 - 博客园 (cnblogs.com)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
make /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/xproto.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/bigreq.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/xc_misc.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/composite.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/damage.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/dpms.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/dri2.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/glx.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/randr.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/record.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/render.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/res.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/screensaver.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/shape.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/shm.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/sync.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/xevie.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/xf86dri.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/xfixes.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/xinerama.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/xinput.xml Traceback (most recent call last): File "./c_client.py", line 1039, in <module> module.register() File "/usr/lib/python2.7/dist-packages/xcbgen/state.py", line 93, in register matcher.execute(self, self.namespace) File "/usr/lib/python2.7/dist-packages/xcbgen/matcher.py", line 115, in execute funcs[elt.tag](elt, module, namespace) KeyError: 'eventstruct' make: *** [Makefile:1018: xinput.c] Error 1
05-24
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值