美文网首页
2018-09-23

2018-09-23

作者: pythonyuan | 来源:发表于2018-09-23 23:07 被阅读0次

    今天就来复习一下排序吧

        冒泡虽然可以排序,但在处理大量数据时,就会显得乏力,今天就来复习一下快速排序吧

    def quick_sorted(lst,start,end):

      #快速排序建立一个函数 放入三个形参 分别绑定 列表L 开始的索引 和结束的索引 ,一般的以第一个数据为参考值

        left = start #快速排序 确定左光标

        right = end #right 为右光标

        if left<right:

            key = lst[left]

         while  left<right: # 如果左光标小于右光标

              while left < right and key <= lst[right]: #光标在左侧,然后跟右侧进行 比较,如果右侧大于key则向前移动  

                right-=1

             lst[left],lst[right]=lst[right],lst[left]  #如果条件不成立 调换位置 进行下一轮的计较

              while left<right and key>=lst[left] #调换位置之后反过来进行比jiao

                left+=1

            lst[left],lst[right]=lst[right],lst[left] 

        #这个快速排序的原理在这里说下,就是确定一个比较值,然后吧整个列表分成两部分,前面的比这个值小,后面的比这个值大,但这些都是无序,所以要进行递归,知道key的两边都只剩一个数

            quick_sorted(lst.start,left-1)#(这两个循环在第一个while循环中嵌套.这空格不好看)

             quick_sorted(lst,left+1,end)  #这玩意那个空格有点问题,可能结构不对

        return lst

    上面写的不怎么好看,下面试我以前的 ,仅供参考

    相关文章

      网友评论

          本文标题:2018-09-23

          本文链接:https://www.haomeiwen.com/subject/rooqoftx.html