Iconfont 阿里巴巴图标库使用

最开始写网站的时候使用的图标是 Font Awesome,个人感觉有点复杂,于是在 18 年的时候将图片资源切换为 Iconfont 阿里巴巴矢量图标库 了,点击这里 进入,在此记录一下使用方法。

单链表面试题 - 找到中间结点

题目:快速找到未知长度单链表的中间结点

既然是面试题,就存在这普通方法和高级方法。

普通方法

  • 首先遍历一遍单链表,确定单链表的长度 L
  • 再从头结点出发循环 L/2 次找到单链表的中间结点
  • 该算法复杂度为:O(L+L/2) = O(3L/2)

「转载」软件最需要知道的计算机网络(这一篇就够了)

本文转载于公众号: 「程序媛小飞龙」,其博客地址位于我的友情链接页面。

引言

说来挺巧,今天我正在上「计算机网络」这门课的时候,刚好翻到了这篇文章,我个人比较喜欢这种使用不官方语言来描述的文章,通俗易懂,于是我经过作者的同意,转载了此文章。

上图的书是不是很亲切,刚好我上课的教材就是这本书,就像原作者所说的「这哥们看完得花半条命」。

链表(一)

引言

顺序存储结构最大的缺点是 插入和删除时需要移动大量的元素, 这就需要耗费大量的时间。针对这个问题,线性表的链式存储就出现了。

「链式存储」直接不考虑相邻位置的问题,哪里有位置就把元素放到哪里,每个元素多用一个位置来存放 指向下一个元素的指针,这样就可以从上一个元素找到下一个元素,它们之间的位置是随机的。

线性表之顺序存储

线性结构是较简单、常用的一种数据结构,其特点为:除第一个元素无直接前驱、最后一个元素无直接后继外,集合中其余元素均有唯一的直接前驱和直接后继。而线性结构的存储方式有两种:顺序存储和链式存储。

算法时间复杂度分析(一)

都知道,数据结构和算法解决的问题是「快」和「省」,判断一个算法是否好,就需要对其的时间、空间复杂度进行分析。

例如:一个算法 F,一个数据 N

  • 当 N 中有 10 个元素时,算法 F 进行处理,需要 1 s
  • 当 N 中有 100 个元素时,算法 F 进行处理,需要 10 s
  • 当 N 中有 1000 个元素时,算法 F 进行处理,需要 100 s
  • ……

简述

什么是数据结构?什么是算法?

这俩问题,在课本上、百科等地方都有讲述过。但是这些定义很抽象、很拗口,对理解概念感觉没啥实质性的帮助,反而是将这些概念死记住。

从广义上看,数据结构就是指一组数据的存储结构。算法是操作数据的方法。

我们如何把现实中大量而复杂的问题使用特定的数据类型和特定的存储结构保存到主存储器(内存)中,这就是数据结构。接着在此基础上为实现某个功能(比如:增删查改)而执行的操作,叫做算法。

JAVA 排序之选择排序、堆排序

接上一篇文章:Java 排序之插入排序、希尔排序

三、选择排序

1. 算法简介

选择排序相对于上一篇文章记录的插入排序、希尔排序要简单一些,它比较直观。它的基本思路为:把第一个元素依次和后面的所有元素进行比较,第一次结束后,就会有最小值出现在最前面,依次类推。

Java 排序之插入排序、希尔排序

今天学习了一下 Java 数组的相关操作,包含排序和查找,现在先将排序记录巩固一下。

常用并且比较重要的几种排序:插入排序希尔排序快速排序归并排序冒泡排序选择排序

国庆就这么过了

假期头三天,没有去哪里,就在我们小城里面转悠。

之前几个朋友一起商量好的,3 号就去外面玩耍,可是计划比不上变化,一个个都是这有变故,那走不开的,一直拖着,导致出去游玩的时间浪费了许多,这让我很不舒服。我个人觉得,既然当初信誓旦旦的承诺并且约定好了时间,就应该做到。我自己当时就承诺了说我没问题,到时候说走就走,事实证明,我说的没毛病,当时确实只有我和我女朋友,两个人随时说走就走,就等着其他人。