数据结构和算法

本文深入探讨了快速排序和堆排序这两种经典算法。通过实例详细解释了快速排序的分治策略以及堆排序的构建、出堆、入堆过程。此外,还提及了二叉查找树的概念。这些内容对于理解和应用数据结构与算法至关重要。

        数据结构和算法是计算机发展中纯编程模块重要的总结成果,常见算法和数据结构针对现有的计算机架构、常用业务场景、常见需求进行设计与归纳得出,单纯学习算法的过程比较困难,学习过程也较费劲,需要极大的意志力和兴趣支持。

个人和这块知识的过往

        CS专业出身,大概本科三年级学习该内容,虽然也有实践,敲过各类算法,数据结构,却只是停留在大概印象层面。

        校招找工作阶段,好好“刷了一波题”,经过自发努力,当时也多少可以AC部分题目。

        终于,工作一段时间,不得不反思,总结了,痛定思痛,写吧。

        数据结构暂不涉及,多撸题,慢慢就差不多了,本文以算法为主,本文不配图,如有需要自行搜索,有图可以帮助加速理解。

1. 排序算法

        以快速排序为例——JDK中的容器在sort时使用该算法,以堆排序为例——曾经面试被问过,没意识到还有这。

1.1快速排序(升序)

a.在区间start,end内,以第一个数为基准值;

b.从末尾往前找小于基准值的数,放置在基准值位置;

c.从第一个数开始找大于于基准值的数,找到则放置在上一个被移动的位置上;

d.循环bc,直到start==end,得到基准值位置pos;

分别对start,pos-1 区间 和 pos+1,end区间递归处理

1.2堆排序:

  • 根节点是最值
  • R[i].lchild = R[2 * i + 1]
  • R[i].rchild = R[2 * i + 2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jackie_05

oo

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值