【algorithm】算法基础课---排序算法(附笔记 | 建议收藏)
创始人
2024-05-10 14:39:00
0

🚀write in front🚀
📝个人主页:认真写博客的夏目浅石.
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏:AcWing算法学习笔记
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🖊
✉️如果无聊的话,就来逛逛我的博客栈吧stack-frame.cn

文章目录

  • 前言
  • 一、快速排序
    • 1.1快速排序的知识讲解
    • 1.2快速排序的习题讲解
    • 1.3对于快排的总结
  • 二、归并排序
    • 2.1快速排序的知识讲解
    • 2.2归并排序的习题讲解
    • 2.3对于归并的总结
  • 总结


前言

在这里插入图片描述

之前其实做过关于快速排序以及归并排序的博客笔记,但是我觉得我讲解的是不到位,所以我打算重新写一篇博客来帮助自己和大家梳理一下这两个算法模板以及配套的习题。


其实就是把元素放到x的两侧

一、快速排序

1.1快速排序的知识讲解

快速排序的核心思想基于分治
快速排序主要的内容就是:

  • 确定分界点:q[L],q[(L+R)/2],q[R] 其实就是分为左边界,中间值和右边界,甚至随机一个数

  • 调整区间,其实就是把元素放到x的两侧

  • 递归处理左右两段
    在这里插入图片描述
    下面就是具体讲解步骤二的调整区间
    在这里插入图片描述

  • 两个指针,i,j不断在这里面移动

  • 当指针i指向的元素<=x的时候就指针向右移动同理指针j遇到>=x的时候就指针向左移动

  • 当i指针指向的元素>=x的时候停下来,等到j指针指向的元素<=x的时候就也停下来

  • 最后使得这两个元素进行swap交换一下

在这里插入图片描述
以上就是快速排序的基础知识啦,下面就要讲解一些习题来巩固和练习我们所讲解的知识点啦

快排思想图:
在这里插入图片描述

1.2快速排序的习题讲解

在这里插入图片描述
C语言实现:

#include
int arr[100010];void quick_sort(int arr[],int l,int r)
{if(l>=r) return;int i=l-1,j=l+1,x=arr[l];while(ido i++;while(arr[i]>x);do j--;while(arr[j]int tmp=arr[i];arr[i]=arr[j];arr[j]=tmp;}}quick_sort(arr,l,j);quick_sort(arr,j+1,r);}int main()
{int n;scanf("%d",&n);for(int i=0;i

C++实现:

#include using namespace std;const int N = 1000010;int q[N];void quick_sort(int q[],int l,int r)
{if (l>=r) return;int i=l-1, j=r+1,x=q[l+r>>1];while (ido i++; while (q[i]x);if (iint n;scanf("%d", &n);for (int i=0; i

在这里插入图片描述

#include
void quick_sort(int arr[],int l,int r)
{if(l>=r) return;int i=l-1,j=r+1,x=arr[l];while(ido i++;while(arr[i]x);if(iint tmp=arr[i];arr[i]=arr[j];arr[j]=tmp;}}quick_sort(arr,l,j);quick_sort(arr,j+1,r);
}
int main()
{int arr[100010];int n,k;scanf("%d %d",&n,&k);for(int i=0;iif(i+1==k) printf("%d",arr[i]);}return 0;
}

其实C++和这个差不多,这里不再赘述了。

1.3对于快排的总结

其实就是自己要多练习几遍,反复敲打上几次就可以啦,然后隔一段时间再写一次看看自己是否可以再次写出来这个模板。

二、归并排序

2.1快速排序的知识讲解

归并排序的核心思想基于分治
归并排序主要的内容就是:

  • 确定分界点mid=(left+right)/2
  • 递归排序left,right
  • 归并,合二为一
    在这里插入图片描述
    下面就讲解一下,归并排序的大致思路
  • 先比较两个指针所指向的元素谁大谁小
  • 谁小就拿下来放到新的保存数组里面,然后指针向后挪动一位依次类推
  • 直到其中一个指针走向了终点的位置为止,就可以把没有走完的直接补充到我们的保存数组里面

在这里插入图片描述
归并排序的原理动图:
在这里插入图片描述

2.2归并排序的习题讲解

在这里插入图片描述

#include
const int N=100010;
int arr[N],tmp[N];void merge_sprt(int arr[],int l,int r)
{if(l>=r) return;int mid=(l+r)/2;merge_sprt(arr,l,mid),merge_sprt(arr,mid+1,r);int i=l,j=mid+1,k=0;while(i<=mid&&j<=r){if(arr[i]<=arr[j]) tmp[k++]=arr[i++];else tmp[k++]=arr[j++];}while(i<=mid) tmp[k++]=arr[i++];while(j<=r) tmp[k++]=arr[j++];for(int i=l,j=0;i<=r;i++,j++) arr[i]=tmp[j];}
int main()
{int n;scanf("%d",&n);for(int i=0;i

2.3对于归并的总结

主要对于逆序对问题很重要归并排序。

总结

今天重新写了一篇关于AcWing算法基础课的一篇博客,其实我第一次看的时候会觉得很难,但是今天又看了一遍,发现,简单了很多,或许我们曾经不会的,或许以后就会慢慢掌握,希望遇到困难的时候第一想到的不是退缩和放弃,而是拼尽全力试一试看看到底自己能不能行。
在这里插入图片描述
我是夏目浅石,希望和你一起学习进步,刷题无数!!!希望各位大佬能一键三连支持一下博主,hhhh~我们下期见喽

在这里插入图片描述
如果无聊的话,就来逛逛我的博客栈吧stack-frame.cn

✨原创不易,还希望各位大佬支持一下\textcolor{blue}{原创不易,还希望各位大佬支持一下}原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力!\textcolor{9c81c1}{点赞,你的认可是我创作的动力!}点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!\textcolor{ed7976}{收藏,你的青睐是我努力的方向!}收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!\textcolor{98c091}{评论,你的意见是我进步的财富!}评论,你的意见是我进步的财富!

相关内容

热门资讯

爸爸我想对你说,谢谢初一作文... 爸爸我想对你说,谢谢初一作文 篇一亲爱的爸爸,写这篇作文的时候,我突然想到了很多要对你说的话。首先,...
老报纸初一作文(经典5篇) 老报纸初一作文 篇一:回顾过去的故事随着时间的推移,科技的进步,我们渐渐对老报纸失去了兴趣。然而,老...
食事作文800字【经典6篇】 食事作文800字 篇一:美食之旅食物是人类生活中不可或缺的一部分,不仅是生存的基本需求,更是一种享受...
师生之间作文【推荐5篇】 师生之间作文 篇一师生关系的重要性师生关系是教育中不可或缺的一环。一个良好的师生关系不仅可以提高学生...
《成长的烦恼》初中作文600... 《成长的烦恼》初中作文600字 篇一成长是一段充满烦恼的旅程。在我们的成长过程中,我们会遇到各种各样...
初一的幸福作文400字【精简... 初一的幸福作文400字 篇一初一的幸福初一,是每个学生心中的一个重要的节点。对于我来说,初一代表着新...
雨心-初中作文500字【经典... 雨心-初中作文500字 篇一雨心雨心是一个乡村小女孩的名字,她生活在一个风景秀丽的山村。雨心是个聪明...
初一买书作文1000字【通用... 初一买书作文1000字 篇一 初一买书作文1000字 篇二初一买书作文1000字 篇三今天是周天,明...
初中随笔作文600字(推荐6... 初中随笔作文600字 篇一:我的暑假生活暑假即将结束了,回想起这个丰富多彩的暑假生活,真是让我难以忘...
生活之路初一作文(精选3篇) 生活之路初一作文 篇一:生活的点滴感悟生活,是一条曲折而美丽的道路,而我,一个刚刚踏上这条路的初一学...
难忘的一节课初中作文862字... 难忘的一节课初中作文862字 篇一我永远难忘的一节课是初中的一堂语文课。那天,我们班级的语文老师带我...
写月亮的作文600字初一【最... 写月亮的作文600字初一 篇一月亮是夜空中最美丽的明星。每当夜幕降临,我总会抬头仰望,被月亮那洁白的...
初一作文(实用6篇) 初一作文 篇一:我的偶像我有一个非常特别的偶像,他就是我的爸爸。我想和大家分享一下我为什么如此崇拜他...
烟的味道初一作文【优质5篇】 烟的味道初一作文 篇一烟的味道烟的味道,是一种特殊的气味,让人又爱又恨。烟有很多种类,有香烟、雪茄、...
中药比拼西药初一作文(通用5... 中药比拼西药初一作文 篇一中药与西药,作为两种不同的药物疗法,各自有着自己的特点和优势。中药是我国独...
天使不曾离开_初中记叙文【经... 天使不曾离开_初中记叙文 篇一那是一个阳光明媚的下午,我正在初中校园里与朋友们玩耍。突然,一阵尖锐的...
世界何时铸剑为犁初中作文(精... 世界何时铸剑为犁初中作文 篇一:人类共同的梦想世界何时铸剑为犁?这是一个让人深思的问题。在我看来,这...
印象武隆初一作文【精选3篇】 印象武隆初一作文 篇一初一暑假,我随父母一同来到了美丽的武隆。这是一个有着悠久历史和独特风景的地方,...
初一作文我的目标精选28篇 初一作文我的目标 第一篇目标可以决定一个人事业的成败兴衰。有了远大的目标便不易满足,会不断的去奋斗,...
全家福作文【通用3篇】 全家福作文 篇一我的家庭是一个幸福的家庭,每当我看到我们的全家福照片时,心中都会涌起一股温暖和幸福的...