
数据结构
文章平均质量分 66
怀橘v
把每一件简单的事情做好就是不简单,把每一件平凡的事做好就是不平凡
展开
-
栈与队列
栈 概念 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做出栈。出数据在栈顶。 Java中常用的方法 实现 利用顺序表实现,即使用尾插 + 尾删的方式实现 利用链表实现,则头尾皆可 public class MyStack { // 简单起见,我们就不考虑扩容问题了原创 2021-04-09 21:17:42 · 148 阅读 · 0 评论 -
排序(冒泡插排选排)
排序 就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 平时的上下文中,如果提到排序,通常指的是排升序(非降序)。 通常意义上的排序,都是指的原地排序(in place sort)。 稳定性 指两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳 定性的排序算法。 基于比较的七种排序 插入排序 原理 整个区间被分为 有序区间 无序区间 每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入 代码实现 // 最好的情况:原创 2021-04-07 18:45:45 · 138 阅读 · 0 评论 -
排序(希尔快排堆排归并)
前面我们讲了插入、选择、冒泡三种排序 下面我们来讲讲剩下的几种排序 希尔排序 原理 希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分 成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述分组和 排序的工作。当到达=1时,所有记录在统一组内排好序。 希尔排序是对直接插入排序的优化。 当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了, 这样就会很快。这样整体而言,可以达到优化的效果原创 2021-04-08 20:47:09 · 104 阅读 · 0 评论