算法系列
文章平均质量分 81
杨景文Blog
正人者,先正己,方能正人
展开
-
算法入门到精通6之插入排序
算法入门到精通6之插入排序 #算法系列 #杨景文 一、概述 上一节我们说过排序是算法中的一部分。所以我们学习排序也是算法的入门,为了能让大家感受到排序是算法的一部分,我举个例子证明一下:比如麻将游戏,发完牌之后需要对手上的牌进行排序,大家想想,麻将排序如何排呢?它有什么特点呢? 而且在摸牌打牌的过程中,我们要不断的排序,如何排序呢?选择什么排序算法最快呢? 以上这种情况我们就可以分析选择哪种排序算法更高效。比如下图已经有一副固定顺序的牌了: 此时轮到我们摸牌,摸到的牌如下: 此时,要将这个“三同”放到上原创 2021-10-15 15:22:09 · 142 阅读 · 0 评论 -
算法入门到精通5之选择排序
算法入门到精通5之 选择排序 #算法系列 作者:杨景文 一、排序和算法 排序是算法中的一部分,也叫排序算法。算法一般用来处理数据,而数据的处理最好是要找到他们的规律,这个规律中有很大一部分就是要进行排序,所以需要有排序算法。本节讲解的是选择排序,从选择排序开始认识排序的一些基础概念。之所以将选择排序作为排序的入门,原因是选择排序算法的逻辑最好理解。 二、选择排序 2.1 选择排序算法逻辑 选择排序是一种最简单的排序算法。其排序的逻辑如下: 1、有一个待排序的数组A(以下简称A)。 2、从A中找出最小的元素。原创 2021-10-15 15:17:43 · 150 阅读 · 0 评论 -
算法入门到精通4之算法复杂度(三)
一、概述 衡量算法复杂度的还有另一个指标就是空间复杂度。空间复杂度就是在执行算法过程中需要分配的内存空间的渐进性大小。空间复杂度和时间复杂度是两个共同衡量算法复杂度的指标;都是用大O辅导表示复杂系数,记作O(f(n))。 二、空间复杂度 概述中提到过,空间复杂度就是一个算法在执行过程中所需要的内存空间。接下来通过一些示例给大家说明空间复杂度的计算方式。 示例1: int sum=0; for (int i = 1; i <= n; i++) { sum+=i; } 如上代码,还是计算原创 2021-08-20 13:58:01 · 281 阅读 · 0 评论 -
算法入门到精通3之算法复杂度(二)
一、概述 上一篇我们讲解的是时间复杂度,更多的内容是让大家理解大O符号、以及时间复杂度是如何计算的。本章节将会带大家认识一下常见的时间复杂度。 二、常见时间复杂度 2.1、O(1) O(1)是最好的算法时间复杂度,也就是说同比效率最高的算法。其中的1表示的不是1次,之前有个同学问我,如果是消耗2个单位时间的时间复杂度是不是记为O(2)呢?不是。不论算法消耗几个单位时间,只要是这个时间不随着n的渐进性变化而变化,也就是这个单位时间永远都是2个、或者永远都是10个。这样的时间复杂度都记作O(1)。 是不是原创 2021-08-20 13:55:04 · 142 阅读 · 0 评论 -
算法入门到精通系列2之算法复杂度(一)
算法入门到精通系列2之算法复杂度(一) #杨景文算法系列 一、概述 算法复杂度又分为时间复杂度和空间复杂度。本节主要是介绍时间复杂度。时间复杂度表示计算机执行一段算法所需要的时间。对于计算机来说,解决同一个问题不同的算法,所需时间越少的算法越优(不考虑空间问题),所以时间复杂度是衡量一个算法好坏的指标之一。 二、大O符号 衡量时间复杂度通常使用”大O符号“。什么是大O符号?我们需要先看看一些数学知...原创 2020-04-17 16:57:54 · 1095 阅读 · 1 评论 -
算法入门到精通系列1之算法概述
算法入门到精通系列1之算法概述 #算法系列# 开篇 算法,一个听起来很厉害的词。也是最近几年特别火的词。很多大学生都想学习算法,因为它是大厂和高薪工作的代名词。但是有关算法系列的书籍或者文章不多,或者说是成系列的、从入门到精通的文章不多,从而导致我们学习起来比较困难。于是,我就计划写一系列适合大学生学习的算法文章,让更多的人能学习算法。 本系列的所有算法实现将采用java代码实现,所以需要有一定的...原创 2020-04-17 16:53:19 · 336 阅读 · 0 评论