【交换排序】快速排序 前言 快排思想 Code 前言 平常码砖的时候,对于一个数组进行排序更多的是起泡排序,起泡排序对于一般不是很长的数组进行操作没什么问题,一旦数组过大,很明显效率低。 而快排是对起泡排序的一种改进,效率明显优高。 快排思想 快排的思想是通过每一次排序将待排的数组分成两部分,左边的部分所有值均小...
【交换排序】冒泡排序
【交换排序】冒泡排序 前言 冒泡思想 Code 前言 如果一个数组中,只有一两个是无序的,冒泡排序比较适合 冒泡思想 算法稳定性 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元...
【选择排序】堆排序
【选择排序】堆排序 前言 思想 Code 前言 Waiting for update... 思想 原数组arr如下: 存储结构: | 8 | 3 | 6 | 4 | 1 | 2 | 5 | 7 | 逻辑结构: 8 / \ 3 6 /...
【选择排序】直接选择排序
【选择排序】直接选择排序 前言 思想 Code 前言 Waiting for update... 思想 比如,以下是未排序的数组: | 4 | 3 | 5 | 1 | 2 | 经过第1轮选择,找出最小值,放第1位 int temp = arr[0] arr[1] < temp -> temp ...
图的最短路径
图的最短路径 前言 某个源点到其余各顶点最短路径 一对顶点之间最短路径 前言 在《数据结构》(严蔚敏&吴伟民)一书中花了一章节的内容来介绍图 在图的遍历一节中介绍了两种遍历方法:DFS、WFS 本篇内容主要介绍WFS的应用 public class Dijkstra { private stat...
如何进行算法分析?
如何进行算法分析? 1.前言 2.数学基础 3.时间复杂度定义 5.实践分析 1.前言 前几天在一篇微信公众号【算法与数据结构】上看到一篇关于算法时间复杂度分析基础的文章,写的比较基础但却不通透。 所以我决定把大学的的老东西翻一翻,整理一篇自我感觉基础通透的知识点。 2.数学基础 我们常常...
什么是数据结构?
什么是数据结构 说在前面的话 数据结构定义 基本结构 说在前面的话 大学读的是信息与计算科学专业,醉于算法却不得精进,随之大二开了一门数据结构的课程,当时不觉得多么重要,现在每每不得解,总得拿出《数据结构》一本寻解! 当时课程用的《数据结构》是【严蔚敏、吴伟民】版,感觉是一本不可多得的好教材! PS: 只有分析待处理对象的特性以及各处理对象之间存在的关系,才能写得...