首页 > 编程语言 > 详细

排序算法

时间:2020-06-13 22:43:28      阅读:43      评论:0      收藏:0      [点我收藏+]

冒泡排序(Bubble Sort)

插入排序(Insertion Sort)

希尔排序(Shell Sort)

选择排序(Selection Sort)

快速排序(Quick Sort)

def QuickSort(arr,start,end):
    if start>=end:
        return 
    i = start
    j = end
    flag = arr[i]
    while i < j:
        #print(start,end,arr,arr[i],arr[j],i,j)
        if arr[i] < flag:
            i+=1
        elif arr[j] > flag:
            j-=1
        else:
            if arr[i] == arr[j]:
                i+=1 
            else:
                arr[i],arr[j] = arr[j],arr[i]
                i+=1
    arr[i] = flag
    QuickSort(arr,start,i-1)  # 这里如果写QuickSort(arr,start,i),当arr[start]==arr[i]]时,由于每次递归调用没有缩小问题规模,整个递归调用会超出最大调用栈深度 
    QuickSort(arr,j+1,end)    # 也不能写QuickSort(arr,j,end)

nums=[3,5,1,8,3,10,3,6,2,12,62,23]
print(nums)
QuickSort(nums,0,len(nums)-1)
print(nums)

归并排序(Merge Sort)

堆排序(Heap Sort)

计数排序(Counting Sort)

桶排序(Bucket Sort)

基数排序(Radix Sort)

排序算法

原文:https://www.cnblogs.com/sandy-t/p/13121910.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!