- 4
- 0
- 约 10页
- 2015-07-22 发布于云南
- 举报
精通八大排序算法系列:一、快速排序算法
?
作者 July? 二零一一年一月四日------------------------------------------
?? 写此八大排序算法系列之前,先说点题外话。每写一篇文章,我都会遵循以下几点原则:一、保持版面的尽量清晰,力保排版良好。二、力争所写的东西,清晰易懂,图文并茂三、尽最大可能确保所写的东西精准,有实用价值。
?? 因为,我觉得,你既然要把你的文章,公布出来,那么你就一定要为你的读者负责。不然,就不要发表出来。一切,为读者服务。
?? ok,闲不多说。接下来,咱们立刻进入本文章的主题,排序算法。众所周知,快速排序算法是排序算法中的重头戏。因此,本系列,本文就从快速排序开始。------------------------------------------------------
一、快速排序算法的基本特性时间复杂度:O(n*lgn)最坏:O(n^2)空间复杂度:O(n*lgn)不稳定。
快速排序是一种排序算法,对包含n个数的输入数组,平均时间为O(nlgn),最坏情况是O(n^2)。通常是用于排序的最佳选择。因为,排序最快,也只能达到O(nlgn)。
二、快速排序算法的描述算法导论,第7章快速排序时基于分治模式处理的,对一个典型子数组A[p...r]排序的分治过程为三个步骤:1.分解:A[p..r]被划分为俩个(可能空)的子数组A[p ..q-1]和A[q+1 ..r],使得A[p ..q-1] = A[q] = A[q+1 ..r]2.解决:通过递归调用快速排序,对子数组A[p ..q-1]和A[q+1 ..r]排序。3.合并。
?
三、快速排序算法
版本一:QUICKSORT(A, p, r)1 if p r2??? then q PARTITION(A, p, r)?? //关键3???????? QUICKSORT(A, p, q - 1)4???????? QUICKSORT(A, q + 1, r)
数组划分快速排序算法的关键是PARTITION过程,它对A[p..r]进行就地重排:PARTITION(A, p, r)1? x A[r]2? i ← p - 13? for j ← p to r - 14?????? do if A[j] ≤ x5???????????? then i ← i + 16????????????????? exchange A[i] - A[j]7? exchange A[i + 1] - A[r]8? return i + 1
?
ok,咱们来举一个具体而完整的例子。来对以下数组,进行快速排序,??2?? 8?? 7?? 1?? 3?? 5?? 6?? 4(主元)
一、
i p/j
??2?? 8?? 7?? 1?? 3?? 5?? 6?? 4(主元)j指的2=4,于是i++,i也指到2,2和2互换,原数组不变。j后移,直到指向1..二、????????????? j(指向1)=4,于是i++i指向了8,所以8与1交换。数组变成了:???????i??????? ?j? 2?? 1?? 7?? 8?? 3?? 5?? 6?? 4三、j后移,指向了3,3=4,于是i++i这是指向了7,于是7与3交换。数组变成了:????????????i???????? j? 2?? 1?? 3?? 8?? 7?? 5?? 6?? 4四、j继续后移,发现没有再比4小的数,所以,执行到了最后一步,即上述PARTITION(A, p, r)代码部分的 第7行。因此,i后移一个单位,指向了8?????????????????i????????????? j? 2?? 1?? 3?? 8?? 7?? 5?? 6?? 4A[i + 1] - A[r],即8与4交换,所以,数组最终变成了如下形式,??2?? 1?? 3?? 4?? 7?? 5?? 6?? 8ok,快速排序第一趟完成。
4把整个数组分成了俩部分,2 1 3,7 5 6 8,再递归对这俩部分分别快速排序。i p/j? 2?? 1?? 3(主元)? 2与2互换,不变,然后又是1与1互换,还是不变,最后,3与3互换,不变,最终,3把2 1 3,分成了俩部分,2 1,和3.再对2 1,递归排序,最终结果成为了1 2 3.
7 5 6 8(主元),7、5、6、都比8小,所以第一趟,还是7 5 6 8,不过,此刻8把7 5 6 8,分成了? 7 5 6,和8.[7 5 6-5 7 6-5 6 7]再对7 5 6,递归排序,最终结果变成5 6 7 8。
o
您可能关注的文档
最近下载
- 2025山东劳动职业技术学院单招《数学》通关题库含完整答案详解(夺冠系列).docx VIP
- 巴蜀中学2026届高三1月适应性月考卷(六)英语试卷(含答案解析).pdf
- 大数据技术及其在土木工程中的应用.doc VIP
- SI210 控制系统调试试运转.pdf VIP
- (第一届吉林大学天文知识竞赛预赛试题及答案.doc VIP
- 《大学物理简明教程》教学课件.pptx
- 2025年高考新高考全国Ⅰ卷英语试题(含听力音频、听力原文和答案).pdf VIP
- 2025年一级造价师《建设工程造价案例分析(交通运输)》考试真题(后附权威解析).pdf VIP
- 2025年山东劳动职业技术学院单招语文模拟试题(附答案解析) 完整版2025.pdf VIP
- 精品解析:重庆市南开中学校2024-2025学年九年级上学期期末考试数学试题(原卷版).docx VIP
原创力文档

文档评论(0)