자료구조/알고리즘 공부 소감-1

Zhenghong政宏·2026년 8월 10일
post-thumbnail

数据结构其实是计算机领域最基础的知识了。通过这几天的学习,我其实也没有什么特别大的心得体会,就简单地说一下吧。
자료구조가/알고리즘이 컴퓨터 분야 중 제일 기반적인 지식이에요. 며칠 동안의 공부한 바를 봐서 무려 큰 감상 있다는 것까지야 없는데요. 그래서 쉽게 말해보자.

首先我学习了冒泡排序(버블 정렬),选择排序(선택 정렬),插入排序(삽입 정렬),希尔排序,快速排序(퀵정렬),归并排序(합병 정렬)。然后是线性搜索和二分搜索。搜索和排序是十分基础的算法,即使我们可以使用已经封装好的,效率更高的算法,但是懂得这些算法的原理,并且会写,是非常有效的提升能力的方式。

学习了基本的两种算法以后,我学习了动态数组和单,双链表。这两种数据结构都是很基础的数据结构,虽然难度不高,但是作为后续高难度数据结构的引入,必须要精通所有操作。动态数组包括,尾插,尾删,扩容,resize,深拷贝,以及如何析构。单链表包括有头节点的单链表和无头节点的单链表。无头结点的单链表比较简单,但是在删除操作时会比较复杂,而且要经常判断是否为空。有头节点的单链表在删除操作会比较简单。

上一段中的链表为线性无环链表,后续我又学习了有环链表。有环单链表需要包含一个tail节点指针,初始状态时tail与front重合,这个时候如果插入节点或删除节点最为复杂,需要if一下,一旦tail和front不重合,那么逻辑就会简单很多。循环单链表可以用于解决Joseph环问题。而双向循环链表的整体逻辑类似于单向循环链表,只要多考虑一个prior的指针就可以了。

之后我学习了哈希表,해시테이블。没什么别的事,我就来做一个总结吧。总结会让自己的理解更加深层。
별일이 없기에 오늘 개요 좀 하려고 했습니다.
그래서 인강을 보며 글 작성해보자.

设哈希函数为f(x),那么存储位置i与元素K满足i = f(K),也就是散列的位置。
查找元素也就是通过哈希函数来计算元素对应的映射值。
哈希表查找元素的平均时间复杂度是O(1),但是哈希表占用的内存会非常大,引用吴军博士<数学之美>所言,哈希表的空间效率还是不够高。当存储过多资源进入内存时,哈希表会导致空间不足。

哈希函数包括,除留余数法,平方取中法,还有sha256等加密算法。
处理散列冲突的方法包括,线性探测,链式寻址,二次探测

接下来进行大数据查重的学习。더 힘내자!

profile
Hello! 저는 중국에서 온 송정홍입니다.컴공 학생입니다.

0개의 댓글