自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 受够了初级排序算法,今天来个效率高的——归并排序。

排序算法之归并排序前情回顾:在前几篇文章中我们学习了选择排序,插入排序,以及插入排序的优化版希尔排序,但是他们的时间复杂度都是O(N^2),现在我们终于迎来了我们算法效率大幅度提升的,时间复杂度为O(NlogN)算法——归并排序。基本概念:归并排序的具体含义就是合并两个有序的数组,使数组合并成为一个数组,并且合成的这一个数组整个内部都是有序的。当我们有了这个归并的算法之后,我们就可以用递归来把整个数组一分为二,二分为四,以此类推。最终我们会得到很小的数组。把这些小数组合并为有序的,最终我们就会得到整

2020-09-10 09:07:39 602 1

原创 初级排序算法之选择排序和插入排序

初级排序算法之选择排序和插入排序及其优化前情摘要现在我们学了一些基础的数据结构,如链表,队列,栈,等等。现在我们开始学习一些非常基础的排序算法。今天我们要讲的是选择排序,插入排序以及对插入排序的优化——希尔排序。选择排序基础原理:比如说我们的输入模型是有限的数组,对数组中的元素进行排序。对于选择排序来说就是从该数组中找出第一个最小的元素和数组中的第一个元素交换。(如果数组中的第一个元素就是最小的,我们就让它自己和自己交换)。然后在从数组中剩下的元素中找出第二小的元素和数组中的第二个元素进行交换。若

2020-09-07 19:40:45 239

原创 浅析数据结构之“栈”和“队列”

浅析数据结构之“栈”和“队列”引言:以前刚开始学习数据结构的时候,链表是一大难关,但是在学习链表的时候,老师有事没事就提到“栈”,于是总觉得“栈”很恐怖,很复杂。但是当我学完“栈”这种数据结构的时候,才知道“栈”只不过是纸老虎,甚至还有点“残疾”,功能很少。队列和栈有异曲同工之妙,所以今天就让我们一举攻破“栈”和“队列”吧,其实很简单。一枪扎破纸老虎。概念简述:栈,是一种非常基本的数据结构,它的特点就是先进后出,后进先出,那么”先进后出,后进先出“是什么意思呢?形象的说“栈”就是一口井,“栈”有两个

2020-08-13 21:34:45 354

原创 浅析那些初学者头疼的数据结构——链表

浅析那些另初学者头疼的数据结构——链表前情摘要:本文主要介绍基础数据结构链表的基本概念以及与链表相关的一些简单的操作,如链表的反转,合并两个有序链表,求链表的中间节点,删除链表的倒数第K个节点。对读者的要求:1、不要看到本文写的是链表,就觉得很难,就直接退出,花一点点时间,不敢说让你上来就搞懂链表,但至少给你一种思路,就像当初在黑暗中的我看到那微弱的亮光,因为我就是从初学者刚刚过来的,所以还记得初学者那些奇奇怪怪的问题。2、本文基于java语言的链表,但是其实无论哪一种语言的链表都是大同小异的,只

2020-08-09 20:26:52 514 1

原创 浅析那些初学者头疼i++,i--,-i--等自增自减运算符

浅析那些初学者头疼i++,i–,-i–等自增自减运算符开篇问题:#include<stdio.h>int main(){ int i = 8; printf("%d %d %d %d %d %d",++i,--i,i++,i--,-i++,-i--); return 0;}请小伙伴们观察并写出以上代码执行的结果。根本原因:自增自减运算符分为两类,分别是右值和左值。形如i++,i–,-i之类的便是右值,遇到右值会将递增前的i的值给记录下来,向前传递递增之后的值。形如–i,+

2020-08-07 15:42:29 381

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除