交换排序:冒泡排序和快速排序

交换排序有冒泡排序和快速排序两种
冒泡排序:
从K1开始,依次比较两个相邻的关键字Ki和Ki+1。若Ki>Ki+1,则交换相应记录Ri和Ri+1的位置;否则,不进行交换。
经过这样一遍处理后,使关键字最大的记录如冒泡一样逐步“漂浮”至“水面”,关键字最大的记录移到了第N个位置。 然后对前面的N-1个记录进行第2遍排序,重复以上操作,直到经过N-1遍。
例:用冒泡排序排序(43 21 89 15 47 28)
冒泡排序
如图所示43和21比较,21较小,放在左边。43再和89比较,43较小,放在左边。89再和15比较,15较小,放在左边…

快速排序:
快速排序又称划分排序,它是目前所有排序算法中速度最快的一种。
采用从表首尾向中间扫描,同时交互与基准记录逆序的记录,设两个顺序表位置指示器low和high,它们的初值分别指向无序区的第一个记录和最后一个记录,首先把第一个记录为枢轴保存在变量tmp中,其关键字为pivotkey。首先从high所指位置起向前搜索,找到第一个关键字小于pivotkey的记录和low位置互相交换,low向后移动一位;然后从low所指位置起向后搜索,找到第一个关键字大于pivotkey的记录和high位置互相交换,high向前移动一位。这样重复这两步,直到low=high。
快速排序
例:(46,79,56,38,40,84)
以46为基准数,依次比较
79大于46,放在后面第一个
56大于46,放在后面第一个,79变为倒数第二个
38小于46,放在前面第一个
40小于46,放在前面第一个,38变为正数第二个
84大于46,放在后面第一个,56变为倒数第二个,79变为倒数第三个,46放在中间
所以第一次划分结果为(40,38,46,79,56,84)

PS:快速排序是不稳定的排序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值