快速排序

快速排序(QuickSort)
 
快排是种很猛的算法,对于大量无次序的数据进行排序时效率非常高,他的基本思想是:每一次都选取待排序序列的第一个关键字作为基准,使左边子区间所有关键字小于或等于基准,右边子区间所有关键字大于或等于基准。
1、确定右边子区间的时候让基准从最右边开始比较当发现有比其小的关键字时,令基准和该关键字交换。
2、当基准和右边区域的一个关键字交换过位置之后,再令基准同左边子区间关键字比较,从最左边开始比较,遇到比基准大的关键字时,令基准和该关键字交换。
3、依次循环第1步,第2步。直到左边子区间所有关键字小于或等于基准,右边子区间所有关键字大于或等于基准。
4、以上是第一次划分,之后重复前面3步。

例如:49  38  65  97  76  13  27  59 进行划分的步骤
(1)49和27交换   (27  38  65  97  76  13  49  59)
(2)49和65交换   (27  38  49  97  76  13  65  59)
(3)49和13交换   (27  38  13  97  76  49  65  59)
(4)49和97交换   (27  38  13  49  76  97  65  59)
第一次划分完成,结果为:(27 38  13  )49 ( 76  97  65  59),接着继续划分。
(1)27和13交换 ,76和59交换(13)38(27)49(59  97  65  76)  
(2)27和38交换 ,76和97交换13  27  38  49(59  76  65  97)
(3)76和65交换 13  27  38  49(59  65  76  97)
(4)13  27  38  49  (59  65)76(97)
(5)13  27  38  49  (59)(65)76 (97)
(6)13  27  38  49  59  65  76  97
 
快速排序性能:
1、 总比较次数最大值O(n^2)
2、 当文件的记录已按递增(或递减)排列时,快速排序所需的比较次数较多。
3、 最坏时间复杂度O(n2),最好时间复杂度O(nlgn);
4、 快排是不稳定的。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值