![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 51
怀橘v
把每一件简单的事情做好就是不简单,把每一件平凡的事做好就是不平凡
展开
-
栈与队列
栈 概念 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做出栈。出数据在栈顶。 Java中常用的方法 实现 利用顺序表实现,即使用尾插 + 尾删的方式实现 利用链表实现,则头尾皆可 public class MyStack { // 简单起见,我们就不考虑扩容问题了原创 2021-04-09 21:17:42 · 113 阅读 · 0 评论 -
排序(希尔快排堆排归并)
前面我们讲了插入、选择、冒泡三种排序 下面我们来讲讲剩下的几种排序 希尔排序 原理 希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分 成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述分组和 排序的工作。当到达=1时,所有记录在统一组内排好序。 希尔排序是对直接插入排序的优化。 当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了, 这样就会很快。这样整体而言,可以达到优化的效果原创 2021-04-08 20:47:09 · 71 阅读 · 0 评论 -
排序(冒泡插排选排)
排序 就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 平时的上下文中,如果提到排序,通常指的是排升序(非降序)。 通常意义上的排序,都是指的原地排序(in place sort)。 稳定性 指两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳 定性的排序算法。 基于比较的七种排序 插入排序 原理 整个区间被分为 有序区间 无序区间 每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入 代码实现 // 最好的情况:原创 2021-04-07 18:45:45 · 100 阅读 · 0 评论 -
浅谈原码-补码-反码
在计算机内,定点数有3种表示法:原码、反码和补码。 原码 原码数值位就是真值的绝对值,符号位位“0”时表示正数,符号位为“1”时表示负数,原码又称带符号的绝对值。 反码 反码通常是用来由原码求补码或者由补码求原码的过渡码。反码跟原码是正数时,一样;负数时,反码就是原码符号位除外,其他位按位取反。 补码 正数:补码与原码反码相等 负数:反码 +1 ...原创 2021-03-09 17:11:20 · 134 阅读 · 0 评论 -
链表
链表的原理 元素(element): 真实存于线性表中的内容,是我们关心的核心内容。 结点(node): 为了组织链表而引入的一个结构,除了保存我们的元素之外,还会保存指向下一个结点的引用。 创建结点 class Node { int val; // 保存我们的元素 Node next; // 保存指向下一个结点的引用;其中尾节点的 next == null } // head 是一条链表的头结点;通过 head 我们可以找到所有的结点;所以用头节点完全代表链表 Node head =原创 2021-03-06 17:28:32 · 72 阅读 · 0 评论 -
C语言中的位操作符
今天来总结一下C语言中的位操作符,常见的有六种位操作符。 按位与& 参与运算的两个值,转换成2进制,如果两个相应位均为1时,结果位才为1,否则为0. 例如 6&8=0,转换成二进制 00000110 & 00001000 = 00000000 按位或 | 参与运算的两个值,转换成二进制,如果两个数的相应位有1,结果位就为1。 例如 6 | 8=14,转换成二进制 00000110 | 00001000 = 00001110 按位异或 ^ 参与运算的两个值,转换成二进制,如原创 2020-11-30 01:09:52 · 889 阅读 · 0 评论