美文网首页
快速排序算法模板

快速排序算法模板

作者: yousa_ | 来源:发表于2020-03-11 23:42 被阅读0次

    非常经典,背就完事了!

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # author:ShidongDu time:2020/3/11
    '''
    给定你一个长度为n的整数数列。
    
    请你使用快速排序对这个数列按照从小到大进行排序。
    
    并将排好序的数列按顺序输出。
    
    输入格式
    输入共两行,第一行包含整数 n。
    
    第二行包含 n 个整数(所有整数均在1~109范围内),表示整个数列。
    
    输出格式
    输出共一行,包含 n 个整数,表示排好序的数列。
    
    数据范围
    1≤n≤100000
    输入样例:
    5
    3 1 2 4 5
    输出样例:
    1 2 3 4 5
    '''
    def quick_sort(q, l, r):
        if l>=r: return
        i = l-1
        j = r+1
        x = q[(l+r)//2]
        while(i<j):
            while True:
                i+=1
                if q[i]>=x: break
            while True:
                j-=1
                if q[j]<=x: break
            if i<j:
                q[i], q[j] = q[j], q[i]
        quick_sort(q, l, j)
        quick_sort(q, j+1, r)
    
    if __name__ == '__main__':
        n = int(input())
        alist = list(map(int, input().split()))
        quick_sort(alist, 0, n-1)
        for i in alist:
            print(i, end=' ')
    
    

    相关文章

      网友评论

          本文标题:快速排序算法模板

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