自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 学会快速排序,从此热爱上算法

今天,是我写关于快排的第三篇博客,这篇博客主要集中在流程图上,通过伪代码这种接近实际代码的流程图来详细讲解快排。4.但是还有一个问题,在main函数中调用quick_sort函数时,传入的左下标是0,右下标是n - 1. 加入n为零,那么这时右下标是负数,是不对的,直接return。因为分区的时候需要用到数组的下标,分区后子区间需要使用下标从原数组中划分出来。标,我们知道一个数组的左下标是肯定小于等于右下标的,这种情况发生的时候直接return就好了。通过伪代码,大家可以发现,快排的核心代码就是分区。

2024-06-10 12:55:29 335

原创 先分治后递归的思想推导快速排序的代码,告别不理解地背模板

对这个数组进行排序,即最终的结果是数组中每个元素都是从小到大的一个顺序,这有点复杂,不妨将数组的左边界元素作为分界的基准,而后将这个数组分成两个子区间,左边区间的数据都是小于等于基准元素,右边区间的数据都大于等于基准元素.可以发现这两个子区间本身未必是有序的,因为我们没有对子区间进行排序.但是将子区间看作是一个整体的话,这两个子区间就是从小到大的顺序.这时候,我们惊讶地发现,这个数组要想有序,只需要每个子区间都是从小到大的有序区间可以了.二.拿到任意一个数组怎么排序---->分治+递归。

2024-06-08 16:27:14 1190 1

原创 优雅的快排之分治与递归思想,透彻理解快排

英国计算机科学家东尼.霍尔在英国国家物理实验室工作的时候提出一种名为快速排序的排序算法,它可以高效地将一个数组进行快速排序.那么霍尔是怎么想到的?接下来根据从y总那里学到的以及个人的理解来介绍这个著名的排序.先简单介绍一下快排,快排就是对一个数组在整体上分成有序的两个子区间,这就是分治.然后,每个子区间在通过同样的方法分成有序的两个子区间,这就是递归.注意:这里所指的有序是针对区间而言的,就是将区间看作是一个整体.而区间本身未必是有序的.

2024-06-07 19:52:27 1089 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除