IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 快速排序算法詳解

快速排序算法詳解 時間:2018-12-26      來源:華清遠見

快速排序(Quick Sort)是對冒泡排序的一種改進。由C. A. R. Hoare在1962年提出,其基本思想是選取一個記錄作為樞軸,經過一趟排序,將整段序列分為兩個部分,其中一部分的值都小于樞軸,另一部分都大于樞軸。然后繼續對這兩部分繼續進行排序,從而使整個序列達到有序。

1.基本思想:

例如對于一個待排序的源數組arr = { 4,1,3,2,7,6,8}。

快速排序算法詳解

我們可以隨便選一個元素,假如我們選數組的第一個元素吧,我們把這個元素稱之為“主元”吧。

快速排序算法詳解

然后將大于或等于主元的元素放在右邊,把小于或等于主元的元素放在左邊。

快速排序算法詳解

通過這種規則的調整之后,左邊的元素都小于或等于主元,右邊的元素都大于或等于主元,很顯然,此時主元所處的位置,是一個有序的位置,即主元已經處于排好序的位置了。

主元把數組分成了兩半部分。把一個大的數組通過主元分割成兩小部分的這個操作,我們也稱之為分割操作(partition)。

接下來,我們通過遞歸的方式,對左右兩部分采取同樣的方式,每次選取一個主元元素,使他處于有序的位置。當然是遞歸到子數組只有一個元素或者0個元素了,遞歸結束。

快速排序算法詳解

代碼:quick_sort 是快速排序的算法,partion函數是對于數組的分割操作,分割操作有很多種方法,我這里列舉三種。

快速排序算法詳解

2.分割操作

2.1 單向調整

選最后一個為主元,假設數組arr的范圍為[left, right],即起始下標為left,末尾下標為right。源數組如下

快速排序算法詳解

然后可以用一個下標 i 指向 left,即 i = left ;用一個下標 j 也指向left,即j = left

快速排序算法詳解

接下來 j 從左向右遍歷,遍歷的范圍為 [left, right-1] ,遍歷的過程中,如果遇到比主元小的元素,則把該元素與 i 指向的元素交換,并且 i = i +1

快速排序算法詳解

當j指向1時,1比4小,此時把i和j指向的元素交換,之后 i++。

快速排序算法詳解

就這樣讓j一直向右遍歷,直到 j = right

快速排序算法詳解

遍歷完成之后,把 i 指向的元素與主元進行交換,交換之后,i 左邊的元素一定小于主元,而 i 右邊的元素一定大于或等于主元。這樣,就 i 完成了一次分割了。

快速排序算法詳解

代碼如下:

快速排序算法詳解

2.2 雙向調整

源數組如下:

快速排序算法詳解

然后用令變量i = left + 1,j = right。然后讓 i 和 j 從數組的兩邊向中間掃描。

快速排序算法詳解

i 向右遍歷的過程中,如果遇到大于或等于主元的元素時,則停止移動,j向左遍歷的過程中,如果遇到小于或等于主元的元素則停止移動。

快速排序算法詳解

當i和j都停止移動時,如果這時i < j,則交換 i, j 所指向的元素。此時 i < j,交換8和3

快速排序算法詳解

然后繼續向中間遍歷,直到i >= j。

快速排序算法詳解

此時i >= j,分割結束。最后在把主元與 j 指向的元素交換。

快速排序算法詳解

這個時候,j 左邊的元素一定小于或等于主元,而右邊則大于或等于主元。

到此,分割調整完畢。

代碼如下:

快速排序算法詳解

2.3 挖坑法

1.選取一個關鍵字(key)作為主元,一般取整組記錄的第一個數/最后一個,這里采用選取序列最后一個數為樞軸,也是初始的坑位。

2.設置兩個變量left = 0;right = N - 1;

3.從left一直向后走,直到找到一個大于key的值,然后將該數放入坑中,坑位變成了array[left]。

4.right一直向前走,直到找到一個小于key的值,然后將該數放入坑中,坑位變成了array[right]。

5.重復3和4的步驟,直到left和right相遇,然后將key放入最后一個坑位。

快速排序算法詳解

代碼如下:

快速排序算法詳解

上一篇:ARM:函數指針

下一篇:C語言編程軟件

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 童程童美少儿编程培训课程 - 上市公司缔造少儿编程专业化品牌20年 | 南京文化墙设计公司,南京包装设计制作印刷,南京PPT设计公司,导视制作公司,企业logo设计 | 装盒机_全自动装盒机-温州凯祥包装机械有限公司 | 气体检测仪,多功能气体检测仪,四合一检测仪,氯气检测仪,有机挥发气体检测仪,气体报警器-南京诺邦电子科技有限公司 | 宁波华路德|交通信号灯|交通信号机|太阳能信号灯|交通警示灯|交通信号灯厂家 | 戏曲下载网,唱戏机戏曲下载,戏曲视频下载,戏曲MP3下载 - 梨园风 | 企业资质代办-代理全国工商注册公司_公司转让_增值电信业务许可证新办续期-大通天成科技[gw] | 乌鲁木齐万疆通管道设备有限公司 销售热线;13565955557-新疆 乌鲁木齐 万疆通 管道设备 波纹补偿器 膨胀节 金属软管 伸缩器 管件 阀门 维修 | 惠声电子、广州市惠声电子科技有限公司、VBS、VBS惠声电子、VBS公共广播生产厂家、VBS广播功放生产厂家、VBS会议系统设备批发、VBSIP网络对讲系统厂家、VBS会议系统厂家、VBS智能中控厂家、VBS专业扩声厂家 | 市南人才网_市南招聘网_求职找工作平台| 企业网站模板_公司模板网站_网站整站源码 - 亿搜云全网营销平台 企业头条—优府网企业自媒体 | 深圳万和制药有限公司_消化领域专业公司 万和香港(集团)成员 深圳同步带轮_东莞齿轮加工_东莞同步轮厂家-东莞东城精胜机械配件厂 | 中深世纪广告公司 深圳标志设计,深圳logo设计公司,包装设计公司,深圳商标设计,深圳画册设计公司 中商信息网-商务数据网-中文商务数据网 | 智能电磁流量计-超声波流量计-涡街流量计-液体涡轮流量计-大连计测机器有限公司 | 人防信号控制箱厂家-液位控制器价格-信号灯箱批发厂家-消声加热器-鼎兴自控 | 激光清洗机_激光除锈机_激光焊接机 - 上海锡昊激光科技有限公司 激光切管机_等离子切管机_相贯线切管机厂家|服务为先-山东美峰智能设备有限公司 | 陕西筱润智能科技有限公司 干部人事智能档案柜 智能密集架 智能档案柜 部队选层文件智能柜 智能枪弹柜 财务智能档案柜 边防武警智能密集架 医院智能档案柜 部队选层文件智能柜智能枪弹柜 学校医院文件柜 企事业单位公检法智能文件柜 生产厂家-筱润智能科技有限公司 RFID射频智能密集架 全自动智能选层档案柜 智能密保柜 枪柜部队营房营具床桌椅办公家具 办公用品档案盒设备货架 全自动智能选层柜生产厂家-筱润智能科技有限公司 | 浙江云野科技有限公司_智慧旅游规划_智慧景区管理系统_全域旅游解决方案-云野科技旅游大数据管理平台 | 纸带过滤机,磁性分离器,排屑器-烟台通赫机床辅机有限公司 | 企多网-B2B网站,B2B商务平台免费b2b,推荐注册送积分,免费注册企业商铺, | 智能访客系统 - 来访登记系统_微信预约系统_人员出入管理系统_访客机_人脸识别系统门禁闸机 | 手动叉车|电动搬运车|电动升降平台-牛力机械制造有限公司官网 | 数海经纬官方网站 - 声学智能领域先行者 - 数海经纬(深圳)信息技术有限公司 | 郫都人才网_郫都招聘网_求职找工作平台 | 噪声治理_噪音治理公司「杭州创雅环境科技」 | 射频导纳物位开关|雷达液位计|安全光栅光幕传感器|音叉料位开关|两级跑偏开关|双向拉绳开关|纵向撕裂保护装置-山东卓信机械有限公司 | 景德镇芳然装饰有限公司 | 上海海外置业展_2024海外置业移民留学展_4月5-7日_企业参展处/免费领门票 | 泰州LOGO设计-品牌VI设计-泰州广告设计公司-大唐歌飞广告设计公司 | 泡沫混凝土垫层填充厂家,发泡混凝土垫层填充,轻质混凝土垫层填充厂家,深圳市鸿奥建材发展有限公司 | 宿迁代账公司,专业会计查账,代理工商注册,商标注册,专利申请,公司注册哪家好-中方会计事务所 | 无锡大型数控龙门铣,喷涂加工,回火抛丸加工,精密不锈钢焊接机床身机床底座制造加工-无锡美高帝机械有限公司 | 深圳沃亚游学官网丨国外游学丨国际夏冬令营丨美国游学线路丨出国短期游学丨亲子海外游丨游学咨询: 0755-83843308 | 商易网-b2b电子商务平台网站大全免费B2B发布供求信息网站 | 棕色土壤采样瓶,棕色小口水样采样瓶-上海迈隆科技有限公司 | 全自动|电加热配液罐,浓缩器厂家-森博百科 | 济宁三石工程机械有限公司-首页-小型起重机、环卫设备、小松配件 | 深圳理津技术有限公司(REHLOGY)-全球工业品供应商:自动化产品|仪器仪表|设备|备品备件|工具|消耗品|非标设备|建筑工程等一站式综合服务! | 商用车之家——观点有态度 热点不缺席 靠谱的商用车门户网站 | 智能化解决方案 智能家居 家庭影院 灯光音箱 会议室报告厅 剧场剧院 指挥中心 大数据中心_沈阳天哲科技有限公司 | 全自动烫金机-全自动移印机-全自动丝印机-全自动平面机-东莞联昌实业供应各种丝印机和移印机 |