快速排序的大概流程

本文详细介绍了快速排序的原理与步骤,包括找出基准数、设置数组两端指针进行比较交换,以及如何递归地对子数组进行排序。通过实例展示了C语言的快速排序代码,帮助理解排序过程。
摘要由CSDN通过智能技术生成


前言

本文主要是描述快速排序算法主要步骤


一、快速排序是什么?

快速排序是对冒泡排序的一种改进,是一种被广泛使用的排序方法。

二、算法排序方法

1.找出基准数

基准数就是数列中的第一个数:

6 1 2 5 9 3 4 7 10 8

2.在数组两端设置两个指针 i j(i在左 j在右)

j先出发向左,找出比基准数小的数停止,i再向右,找出比基准数大的数停止,i j指向的数交换位置。
特殊情况 i j都没有找到数值然后相遇,那么把 i j 所指向的数和基准数交换。(原因:j找比基准数小的数实际上是将小于基准数的放在基准数左边,同理,i寻找比基准数大的是将大于基准数的放在记住数右边,这样每次交换的时候就不会只能在相邻的数之间进行交换,增大了交换的距离)

6 1 2 5 9 3 4 7 10 8
j指向’4’ , i指向’9’ 交换
6 1 2 5 4 3

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值