快速排序(看完就会)
创始人
2024-03-25 03:54:23
0

目录

什么是快速排序

快速排序的步骤:

以上:

图片步骤简绘:

代码实现:


什么是快速排序

                快速排序是由C.A.R.Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,依次达到整个数据变成有序序列

快速排序的步骤:

                先给大家介绍一下算法中要用到的几个重要的标志

                        1、游标:f  b

                        2、标杆:t

                        3、L,R 区间范围

假设有一组数据,我们将第一个元素视为标杆,假设标杆是8,那么我们就可以开始第一次排序了

第一次排序最终是要实现8左边都是比8小的,8右边都是比8大的

f下标的元素如果比8小,游标就向右边进行移动,每次移动一个元素,直至f下标的元素比8大。则游标f停止移动

b下标的元素如果比8大,游标就向左边进行移动,每次移动一个元素,直至b下标的元素比8小,则游标b停止移动

当游标f,b都停止移动时,交换对应的元素

交换完成后继续重复以上的蓝色字体步骤

当游标f,b相遇并且交错的时候,交换标杆和游标b对应的元素、

以上:

        第一次排序结束,也就是说实现了8左边都是比8小的,8右边都是比8大的这一目标

此刻8左右两边各分成了左右区间,在对左右区间重复以上的排序步骤,也就是所谓的递归

直至区间中只有一个元素(区间中只有一个元素时,我们视为已序),则快速排序全部完成

图片步骤简绘:

 

 

代码实现:

#include 
#include 
using namespace std;
void _quick_sort(int arr[], int low, int hight);//核心递归函数
void quick_sort(int arr[], int size)
{_quick_sort(arr, 0, size - 1);//入口函数封装
}
void _quick_sort(int arr[], int low, int hight)
{//1、确定标杆 游标int t = arr[low];//标杆就是t,我们拿的第一个元素当成标杆int f = low + 1;//游标分别是f和b,f是左游标,b是右游标int b = hight;//2、设置递归结束条件if (low >= hight)//区间中最多只有一个元素-视为有序,也就是排序完成return;//3、开始划分大小区间int temp;//用于换成交换的变量while (f <= b)//f>b 说明区间搜索完成了{//3.1 移动游标while (f <= b&&arr[f] <= t) f++;//一直找到比标杆大的元素为止while (f <= b&&arr[b] >= t) b--;//一直找到比标杆小的元素为止//3.2 两个游标停了-交换if (f < b){temp = arr[f];arr[f] = arr[b];arr[b] = temp;f++;b--;}//f>b 出循环 完成了分区//4、标杆归位 t和b进行交换//int t = arr[low];arr[low] = arr[b];arr[b] = t;//5、递归 标杆的位置在b_quick_sort(arr, low, b - 1);//递归左区间_quick_sort(arr, b + 1, hight);//递归右区间}}
int main()
{int arr[]{8, 6, 1, 4, 5, 7, 2, 3};quick_sort(arr, 8);return 0;
}

 

相关内容

热门资讯

用心做好每一块电池的欣旺达,因... 这两天国内动力电池生产厂商欣旺达遇到麻烦事了,因其所生产的电芯存在质量问题被威睿电动汽车技术(宁波)...
以案为鉴筑防线 以审促廉扬清风... 为充分发挥以案释法、以案说纪的警示教育作用,进一步加强党风廉政建设,提高党员干部的法纪意识和廉洁意识...
新加坡国立大学东亚研究所高级研... 由三亚市人民政府主办,《财经》杂志、财经网、《财经智库》、三亚中央商务区管理局、三亚经济研究院承办的...
原创 全... 在国家有关调查力量进驻南京之后,一个并不显眼、却耐人寻味的现象悄然出现了。 短时间内,全国多地博物馆...
跨境金融研究院院长王志毅:离岸... 由三亚市人民政府主办,《财经》杂志、财经网、《财经智库》、三亚中央商务区管理局、三亚经济研究院承办的...
原告向法官出示证据,右下角赫然... 近日,湖北孝感大悟法院民二庭在审理一起房屋租赁合同纠纷案时,精准识破原告方利用AI技术伪造证据的行为...
美国纽约州出台法律约束“成瘾性... 美国纽约州州长凯茜·霍楚尔26日宣布,根据该州新出台的一项法律,具备无限刷新、自动播放和算法推送功能...
富安娜理财纠纷一审落槌,中信证... 乐居财经 李兰经历近三年后,富安娜(002327.SZ)理财纠纷有了新进展。 12月25日,富安娜发...
从合作伙伴到对簿公堂:威睿起诉... 12月26日,欣旺达发布公告,其全资子公司欣旺达动力科技股份有限公司(下称“欣旺达动力”)因买卖合同...
突发!俄称已控制库皮扬斯克;泽... 俄乌,突传大消息! 俄国防部称已控制库皮扬斯克 俄罗斯国防部12月27日在每日例行通报中说,库皮扬斯...