![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
YaoJunJie520
35岁这一年,我才开始意识到,越重要的事,越要有耐心。耐心,不是心里不急,是等得起。等得起,不是不作为,是真正值得的选择没几个。既然想清楚了,那就投入。一切投入之中,投入心力是最难的。耐心,就是很长一段时间,不管发生什么,都能投入稳定的心力。
展开
-
计算机面试专业全面整理
一、首先是两者的定义栈也称为堆栈,是一种线性表。栈的特性: 最先放入栈中的内容最后被拿出来,最后放入栈中的内容最先被拿出来, 被称为先进后出、后进先出。队列也是一种特殊的线性表。不同于栈所服从的先进后出的原则,队列的原则是先进先出。队列在队头做删除操作,在队尾做插入操作。二、然后是两者的异同点不同点:1、删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行。2、队列先进先出,栈先进后出。3、顺序栈能够实现多栈空间共享,而顺序队列不能。4、遍历.原创 2020-05-11 21:39:51 · 639 阅读 · 0 评论 -
简单排序(选择,冒泡,直接插入)
一、简单选择排序1、排序原理 简单选择排序是最简单直观的一种算法,基本思想为每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。 在算法实现时,每一趟确定最小元素的时候会通过不断地比较交换来使得首位置为当前最小,交换是个比较耗时的操作。其实我们很容易发现,在还未完全确定当前最小元素之前,这些交换都是无意义的。我们可以通过...转载 2019-09-25 21:34:14 · 244 阅读 · 0 评论 -
希尔排序
希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现。基本思想 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来...转载 2019-09-26 09:19:01 · 77 阅读 · 0 评论 -
堆排序
预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,...转载 2019-09-26 11:28:56 · 133 阅读 · 0 评论 -
归并排序
基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。分而治之 可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实现(也可采用迭代的方式...转载 2019-09-26 11:30:03 · 61 阅读 · 0 评论 -
数据结构各排序算法【时间复杂度+空间复杂度+稳定性】比较
一、附加条件 TJ1:比较次数与序列初态无关的算法 TJ2:排序在一趟结束后不一定能选出一个元素放在其最终位置上 TJ3:待排序数据已有序时,花费时间反而最多的是 TJ4:就平均性能而言,目前最好的内排序方法 TJ5:占用辅助空间最多的是 TJ6:对初始状态为递增的表按递增顺序排序,最省时间...原创 2019-09-26 11:57:43 · 1646 阅读 · 0 评论