实现快速排序算法的步骤和技巧

分类:知识百科 日期: 点击:0

快速排序算法步骤

  • Step 1:从数列中挑出一个元素,称为 "基准"(pivot);
  • Step 2:重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;
  • Step 3:递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序;

快速排序算法技巧

  • 第一技巧是选择一个合适的基准数,这可以有效地减少递归次数,提高排序的效率。一般选取数列的第一个数或一个数作为基准数,或者随机选择一个数作为基准数。
  • 第二技巧是在划分子序列时,尽量保证子序列的大小接近,这样可以尽量减少不必要的递归次数,提高算法的效率。
  • 第三技巧是在分区操作时,可以使用指针交换法,这样可以尽量减少数据的移动次数,提高算法的效率。

快速排序算法实现

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quick_sort(left) + middle + quick_sort(right)

print(quick_sort([3,6,8,10,1,2,1]))


标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。