- 博客(53)
- 收藏
- 关注
原创 一篇文章让你认识与学习bash(干货满满)
在Linux的环境下,如果不懂bash,那么可以不用学习Linux了!真的有那么夸张吗?的确如此,所以学习bash很重要。
2022-12-08 22:44:53
1072
原创 C++解OJ题——合并两个有序数组(每天一个小技巧)
原题如下: 给你两个按非递减顺序排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你合并 nums2 到 nums1 中,使合并后的数组同样按非递减顺序排列。 注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。审题: 数组本身有序,将两个.
2021-12-02 11:53:43
2103
原创 归并排序---2-路归并排序(划分与合并分析及代码讲解)
文章目录一前言.二.归并排序之划分三.归并排序之合并四.代码设计五.代码实现六.总结一前言. 归并排序大的方向可分为两个部分:划分(归类)与合并。 2-路归并排序指:划分是折半进行,合并是有序组两组两组地进行合并。 接下来我会从归并排序的划分与合并两个部分进行讲解与分析归并排序。二.归并排序之划分划分思想: 将初始数据按照中间位置即折半进行左右划分为两个组,再对各组进行左右折半划分,直到以一个数据为一组。最终该数据将会被划分为若干组。划分步骤: 1.将数据按照中间位置进行左右划
2021-11-29 21:55:15
2396
原创 交换排序--冒泡排序(详细分析及代码实现,超划算)
文章目录一.前言二.何为冒泡三.冒泡排序思想四.过程分析五.代码实现六.总结一.前言 交换排序总思想:数据两两比较,发生逆序则交换,直到整个数据有序。交换排序又可以分为冒泡排序和快速排序。本文讲述有关冒泡排序的知识。二.何为冒泡 如果将数据从小到大进行排序,那么大的将会往下沉,小的将会往上冒。因为每一趟都会选出一个最大的放在底部,较小的数据就会向前移动,就像冒气泡一样,所以叫冒泡排序。三.冒泡排序思想 对存放原始数据的数组,按从前往后的方向进行多次扫描,每一次扫描称为一趟。当发现比较.
2021-11-29 15:03:16
394
原创 选择排序--堆排序(She Says)
一.前言 堆排序是利用堆这种数据结构所设计的一种排序算法。但是堆排序所涉及到的堆的知识并不多,堆排序可以说就是一种利用堆的概念来排序的选择排序。堆要符合下面的这两个特点: 1.是一棵完全二叉树; 2.所有父节点的值都要大于(小于)子节点的值。完全二叉树: 上图中左边的就是一棵完全二叉树,而右边的就不是。 完全二叉树:在满二叉树中,从最后一个结点开始,连续去掉任意几个结点,便是完全二叉树。特点二: 左边的一棵完全二叉树:父节点的值都小于子节点的值。 右边的一棵完全二叉.
2021-11-28 10:36:35
5741
原创 交换排序--快速排序(就是太快,所以很重要)
让你难过的事情,有一天,你一定会笑着说出来。一.前言 交换排序总思想:数据两两比较,发生逆序则交换,直到整个数据有序。交换排序又分为冒泡排序和快速排序。本文讲述有关快速排序的知识。二.快速排序思想基本思想: 如果要将一组数据从小到大进行排序,通过一趟排序,将待排序记录分割成独立的两部分,前部分数据都比后部分的数据小,再分别对这两部分进行排序(分治法的思想),以达到整个序列有序。 举个例子: 假设有如上的一组数据,蓝色代表中间数据,绿色代表比蓝色小的数据,红色代表比蓝色大的数据
2021-11-27 08:32:37
1668
原创 插入排序--折半插入排序(来一来,看一看,走过路过,不要错过)
人生没有彩排,每天都是现场直播,不仅收视率低,而且工资不高。文章目录一.前言二.思想及操作分析三.代码设计四.代码实现五.总结一.前言 插入排序根据查找插入位置的方式不同可以分为三类:按顺序法查找插入位置的——直接插入排序;按折半法也叫二分法查找插入位置的——折半插入排序;缩小增量多遍插入排序的——希尔排序。本文探讨有关折半插入排序的知识。二.思想及操作分析思想: 借助二分查找的思想,先查找插入位置,再移动数据,最后插入到正确的位置。 我们都知道直接插入排序是一个边比较边移动的
2021-11-25 08:00:00
18688
17
原创 插入排序--直接插入排序(不要再寻找,看这篇就够了)
成长是一笔交易,我们都是用朴素的童真与未经人事的洁白交换长大的勇气。文章目录一.前言二.思想及操作分析三.代码设计四.代码实现四.总结一.前言 插入排序根据查找位置的方式不同,可以分为:顺序法查找插入位置的——直接插入排序;二分法也叫折半法查找插入位置的——折半插入排序;缩小增量多遍插入排序的——希尔排序。本文探讨有关直接插入排序的知识。二.思想及操作分析思想: 通过顺序法查找插入位置,即边比较边移动找出插入位置,并插入到正确的位置。 我们都知道要在数组某一个位置插入一个数据,
2021-11-24 12:58:50
1835
原创 希尔排序--Shell sort(为什么道理都懂,就是代码不懂)
果然能用名字来命名的知识都是大神级别的。最近学习了希尔排序,写一篇文章总结一下,相信你看了会有很大收获。 声明一点本处的增量选择采用的是希尔建议的方式,而更好的方式是采用互质的增量序列。选择这样的目的是不增加代码的复杂性,从而更好的理解希尔排序。一旦我们理解了基本原理,其余的都是很好解决的,一起来看看。文章目录一.前言二.思想及操作三.代码设计四.代码实现五.代码解读六.希尔排序总结一.前言 我们都知道插入排序按查找位置的方式不同,又可以分为三类:采用顺序法查找插入位置——直接插入排序;采
2021-11-24 09:06:14
1264
原创 C解OJ题--从尾到头打印链表(就喜欢一道题半天就能解出来,而不是一天)
发现还不会C++的Vector,这次就水一篇文章,用C来解这道OJ题。原题如下: 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。分析: 本题意思就是将链表的数据从尾到头拷贝一份到数组中,返回这个数组基地址。这里提供两个思路,就不过多的分析,大家都能明白。 思路一: 计算出链表的长度,开辟数组后,将单链表的第一个结点放都数组的最后一个位置……那么最后一个结点就会放到数组第一个位置,即可完成从尾到头的拷贝。 思路二: 计算出链表的长度,开辟数组后,先将单链表进行反转
2021-11-22 15:50:40
380
原创 C++解OJ题--链表中倒数第K个结点(已在路上)
世界这么大,人生这么长,总会有这么一个人,让你想要温柔对待。原题如下: 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。审题: 题目也还是很好理解,就是输出一个单链表的倒数第K个结点。可能给我们的单链表的情况: 1.空的单链表; 2.有多个结点,但是K的值不合理(即K的值大于链表
2021-11-21 16:14:07
795
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人