校招知识点总结篇之数据结构算法

这篇博客总结了数据结构与算法的关键知识点,包括常用数据结构介绍、排序算法如快速排序、归并排序的优缺点,查找算法如二分查找,以及二叉树、字符串处理和常见编程题的解决策略。还涵盖了链表、回文数、斐波那契数列等问题,并探讨了堆栈、深浅拷贝和GC算法等概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.常用数据结构简介

数据、数据元素、数据项、数据对象

物理结构:顺序、链式存储

逻辑结构:集合结构、线性结构、树形结构、图形结构

算法的特性:输入、输出、有穷性、确定性、可行性

2.排序算法有哪些?

注:时间复杂度——算法所花费时间;空间复杂度——算法运行所占内存的大小;稳定性——相等的两个数a与b,排序前a在b前面,若排序后位置不变则稳定,反之则不稳定;内排序——排序在内存中完成;外排序——数据量大,排序要通过内存和磁盘;                                                                             我们常说的算法是内部排序算法(插入、选择、交换、归并),排序算法分为比较排序、非比较排序(基数、计数、桶排序)

1.1 最快的排序算法是哪个

数据规模较小:直接插入排序(序列基本有序);简单选择排序(不稳定),对稳定性有要求宜用插入或冒泡(稳定);

数据规模较大:快速排序(序列无序,不稳定);归并排序(序列无序,稳定,内存大);

数据规模巨大:归并排序(稳定)或堆排序(不稳定)

1.2常见排序算法的过程及详细代码(8大)

冒泡排序:对于给定的n个记录,两两比较相邻记录的关键字,若反序则交换,直到没有反序记录为止。

 

简单选择排序:通过n-i次关键字比较间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录交换。

直接插入排序:将一个记录插入到已排好序的有序表中,得到一个新的、记录数增

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值