数据结构与算法
包含内容:排序、链表、哈希表、二叉树、红黑树以及一些简单算法
兜黎
天下难事,
必作于易;
天下大事,
必作于细。
展开
-
基础算法——希尔排序
希尔排序可以说是插入排序的一种变种。希尔排序的思想是采用插入排序的方法,先让数组中任意间隔为 h 的元素有序,刚开始 h 的大小可以是h = n / 2,接着让 h = n / 4,让 h 一直缩小,当 h = 1 时,也就是此时数组中任意间隔为1的元素有序,此时的数组就是有序的了。...原创 2022-08-07 21:19:19 · 349 阅读 · 0 评论 -
基础算法——插入排序
插入排序是在一个已经有序的小序列的基础上,一次插入一个元素。当然,刚开始这个有序的小序列只有1个元素,就是第一个元素。比较是从有序序列的末尾开 始,也就是想要插入的元素和已经有序的最大者开始比起,如果比它大则直接插入在其后面,否则一直往前找直到找到它该插入的位置。如果碰见一个和插入元素相 等的,那么插入元素把想插入的元素放在相等元素的后面。............原创 2022-08-07 16:42:48 · 114 阅读 · 0 评论 -
基础算法——选择排序
选择排序是给每个位置选择当前元素最小的,比如给第一个位置选择最小的,在剩余元素里面给>二个元素选择第二小的,依次类推,直到第n-1个元素,第n个 元素不用选择了,因为只剩下它一个最大的元素了。............原创 2022-08-05 16:46:22 · 104 阅读 · 0 评论 -
算法基础知识(持续更新)
算法的基础知识介绍原创 2022-08-05 16:19:00 · 224 阅读 · 0 评论 -
基础算法——冒泡排序
算法的基础知识介绍;算法本身介绍、算法时间复杂度、空间复杂度原创 2022-08-05 16:17:00 · 150 阅读 · 0 评论 -
数据结构(链表合并、查找两个链表的交点、链表求环)
统一使用结构体struct ListNode{ int val; ListNode *next; ListNode(int x) : val(x), next(NULL){}};链表合并假设 两个链表中数据都是有序链表,将两个链表按从小到大合并 // 链表1 ListNode a(10); ListNode b(20); ListNode c(30); ListNode d(40); ListNode e(50); a.ne原创 2021-12-10 18:03:37 · 791 阅读 · 1 评论 -
数据结构(链表逆序)
逆序一个链表常用方法的两种方法:就地逆置和头插法原创 2021-12-10 10:20:06 · 1602 阅读 · 0 评论