首页 > 其他分享 >蒻苟的第一篇学习笔记(快速排序)

蒻苟的第一篇学习笔记(快速排序)

时间:2024-01-31 21:59:53浏览次数:19  
标签:数列 temp 基准值 第一篇 基准 笔记 排序 left

快速排序是一个非常经典也非常常用的排序算法。在平均状况下,排序 n 个项目需要 Ο(nlogn) 次比较,在最坏状况下则需要 Ο(n2) 次比较,但这种状况其实并不常见。快速排序是分而治之思想在排序算法上的典型应用。
算法步骤:
1.从数列中挑出一个元素,称为 "基准"。
2。设置两个"哨兵",利用"哨兵"将所有比基准值小的元素摆放在基准值前面,所有比基准值大元素的摆在基准值的后面(相同的数可以到任一边)。当两个"哨兵"相遇时,"基准"就找到了正确的位置,同时基准就将数列的左右两边分成了两个区域。
3.递归地把小于基准值元素的子数列和大于基准值元素的子数列排序。
c++代码实现:

点击查看代码
void quicksort(int left,int right)//左右哨兵
{
  int i,j,t,temp;
  if(left>right)
    return;//这里是对于第一个基准数归位后出现的分区的情况的处理
  temp=a[left]//temp存的就是基准数,
  i=left,j=right;
  while(i!=j)
  {
    //顺序很重要,
    while(a[j]>=temp and i<j)
      j--;
    while(a[i]<=temp and i<j)
      i++;
    //交换两个数的位置
    if(i<j)//哨兵未相遇
    {
      t=a[i];
      a[i]=a[j];
      a[j]=t;
    }
    //最终归位基准数
    a[left]=a[i];
    a[i]=temp;
    
    quicksort(left,i-1);//继续处理左边的,这是一个递归的过程
    quicksort(i+1,right);//继续处理右边的,这是一个递归的过程
  }
}

标签:数列,temp,基准值,第一篇,基准,笔记,排序,left
From: https://www.cnblogs.com/ganmaojun/p/18000133

相关文章

  • 《程序是怎样跑起来的》阅读笔记 - 第一、二章
    简介:《程序是怎样跑起来的》是一本介绍计算机程序工作原理的畅销书籍。本文将对该书的前两章进行阅读笔记,主要涵盖了计算机基础知识和程序执行过程的基本原理。第一章:计算机基础知识本章主要讲解了计算机的基本组成部分以及它们之间的关系。作者通过引入一个简单的模型,描述了计......
  • 欧拉函数学习笔记
    前言本人能力有限,有错误欢迎指出。定义\(\varphi(n)\)表示的是小于等于\(n\)和\(n\)互质的数的个数。公式设\(n=\prod\limits_{i=1}^{s}p_i^{k_i}\),有\[\begin{aligned}\varphi(n)&=\prod_{i=1}^s\varphi(p_i^{k_i})\\&=\prod_{i=1}^sp_i^{k_i}-p_i^{k_i-1}\\&=\prod......
  • 《程序是怎样跑起来的》阅读笔记 - 第三、四章
    简介:继续探索《程序是怎样跑起来的》,本文将对该书的第三、四章进行阅读笔记,重点关注计算机程序的存储和数据处理。第三章:计算机的存储器本章主要讲解了计算机的存储器,包括随机存取存储器(RAM)和只读存储器(ROM)。作者首先介绍了这两种存储器的基本概念和特点,然后深入讨论了它们在计......
  • 标题:《程序是怎样跑起来的》阅读笔记 - 第五、六章
    简介:本文将继续探索《程序是怎样跑起来的》,对该书的第五、六章进行阅读笔记,重点关注计算机程序的运行流程和输入输出操作。第五章:程序的执行本章主要讲解了程序的执行过程,包括指令的抓取、解码和执行等步骤。作者详细介绍了计算机中指令的编码方式和指令集体系结构,并解释了控制......
  • 笔记_现实
    认识自己别人很少去关心你想什么,需要什么,更多是批判你做的对不对,最不容易让我们意识到的是,我们可能也是这样评判自己的。在这样的批判下,我们会生出大量的羞耻感,以及对自己真实生活的掩饰和防御。如果你也有这样的感触和困惑,可以试着跟自己说:我的选择一定有自己的理由。对自己......
  • 笔记_祝福语
    新春祝福辞暮尔尔,烟火年年,新年伊始,喜乐安宁岁岁常欢愉,年年皆胜意。山河同赴,新岁共欢彩笔题桐叶,佳句问平安愿君千千岁,无岁不逢春历添新岁月,春满旧山河日迈月征,朝暮轮转,祝愿新年胜旧年韶华长在,明年依旧,相与笑春风岁岁年年,共欢同乐,嘉庆与时新年年约,常相见,但无事,身强健新春......
  • 笔记_搞笑
    看着笑求你们别发了,我生活再难再穷我都不会觉得难过,只有你们发这种东西来炫耀的时候我的心里就像被刀割一样的痛,泪水就忍不住往下流。反鸡汤那些杀不死我的,还不如杀了我我不是无路可逃,我还有死路一条职场梗其实我对你是有点失望的上面多次要搞你,是我保了你我是准备把你当......
  • 笔记_健康
    身体健康此外一定要把身体养好,不然住一次院就知道有多恐怖,费钱费人费时间,而且医院里有个传言,你因为某件事住一次院,迟早还会因为这事再进去一次,并且将来大概率死在这个病上。如果想干点大事,那身体就得非常好,我这些年观察了下那些厉害人,不提别的,精力方面就能吊打99%的人。不容易疲......
  • 笔记_情感
    失恋不受感情支配,也不受过去支配,支配我的只有现在的自己人向前走,苦才会退后和不合适你的过去说再见,太阳的起落在告诉我们,永远会有崭新的一天明智的放弃,好过盲目的执着,生活辽阔,不要只陷入爱恨里,太多的剧本都不如人意转换心态,保持炙热,挖掘和培养自己,去运动,去旅行,给自己制造生活......
  • 算法学习笔记(44): 二维问题小计
    首先需要理解什么是二维问题。$n$维空间体系:将元素变成$n$维空间中的点,将范围变成$n$维空间中的正交范围。二维问题就是每一个元素都可以看作一个平面上的坐标\((x,y)\)。其中一维可以是下标,时间,值,dfn,甚至是一个函数\((x,f(x))\)。经典的二维问题实际上就是矩形加,矩......