快速排序

来源:互联网 发布:lr软件怎么下载 编辑:程序博客网 时间:2024/05/18 14:46
# -*- coding: gb2312 -*-# 交换数值def swap(arr, i, j):    temp = arr[i]    arr[i] = arr[j]    arr[j] = temp# 快速排序def quickSort(arr, left, right):    if left < right:        key = arr[(left + right) / 2]        i = left        j = right                while True:            while True:                if arr[i] >= key:                    break                i += 1                    while True:                if arr[j] <= key:                    break                j -= 1                            if i >= j:                break                        swap(arr, i, j)                    quickSort(arr, left, i - 1)        quickSort(arr, j + 1, right)    if "__main__" == __name__:    arr = [4, 2, 1, 3, 5]    print "arr: ", arr    quickSort(arr, 0, len(arr) -1)    print "sort arr: ", arr    

输出:

arr:  [4, 2, 1, 3, 5]sort arr:  [1, 2, 3, 4, 5]

参考:
《快速排序算法-c#版》
[转]http://blog.csdn.net/mamihong/article/details/8313598#comments
 

原创粉丝点击