数据结构与排序
一些学习数据结构与排序的笔记
Terence_Rain
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
归并排序
一、介绍 归并排序是分治思想的典型应用。将已有序的子序列合并,得到完全有序的序列,即先让每个子序列有序,再使子序列段间有序。 二、举例 给定数组{10,6,7,1,3,9,4,2},排为升序。 这里用这个图描述了分治,排序,归并的过程。 三、代码 public static void mergeSort(int[] arr){ _mergeSort(arr, 0, arr.length); } private static void _mergeSort(int[] a原创 2021-03-25 21:03:22 · 105 阅读 · 0 评论 -
快速排序
一、介绍 快速排序和冒泡排序类似,也是采用交换的方式。 先在数据中找到一个基准值,遍历整个数据,将比基准值小的元素放到基准值的前面,大的放到基准值的后面。然后对前后两个小区间也采用相同的方法处理,直至排序完成。 二、分析 给定一组数组{5,3,4,6,8,9},按照升序进行排序。 以最左侧的5为基准值。 右指针先找到一个比基准值小的,左指针再找到一个比基准值大的。 右指针先走,找到一个比基准值小的数。 左指针走到4和右指针重合了。 交换基准值和当前指针所指向的元素,这样,基准值之前的元素都比基准值原创 2021-03-25 20:08:04 · 126 阅读 · 0 评论 -
冒泡排序
冒泡排序是一种常用的简单排序算法,又称交换排序法。原创 2021-03-25 14:40:11 · 423 阅读 · 1 评论 -
堆排序
图文并茂带你搞定堆排序原创 2021-03-25 11:15:36 · 262 阅读 · 0 评论 -
选择排序
图文并茂手把手带你看懂选择排序!原创 2021-03-24 17:38:33 · 130 阅读 · 0 评论 -
希尔排序
希尔排序是基于插入排序实现的。可以减少数据的搬运次数。原创 2021-03-23 21:20:18 · 115 阅读 · 0 评论 -
插入排序
插入排序是一种简单的排序算法。 这里详细介绍了插入排序的实现过程。原创 2021-03-23 19:35:09 · 121 阅读 · 0 评论 -
树与二叉树
树是一种重要的数据结构的组织形式。 二叉树的遍历是树中最基础的操作原创 2021-03-18 17:08:35 · 154 阅读 · 0 评论 -
栈和队列
在数据结构中,除过顺序表和链表外,还有栈和队列这两种线性结构。 一、栈 1.栈的介绍和元素进出规则 栈这种结构,只允许数据在其一端进行插入和删除操作,栈中的数据元素遵守后进先出的原则。进行数据插入和删除的一端称为栈顶,另一端称为栈底。 栈的插入操作称为入栈,发生在栈顶。 栈的删除操作称为出栈,发生在栈顶。 下面演示一下栈的先进后出: import java.util.Stack; public class Test { public static void main(String[] args) {原创 2021-03-09 19:35:27 · 123 阅读 · 0 评论 -
顺序表ArrayList
顺序表是数据结构中一种组织顺序的重要结构,在顺序表中元素元素之间处在连续的内存空间上。 相对于使用数组,使用顺序表能更方便地进行增删改查的操作。 一、几种常用的方法 下面就介绍几个ArrayList提供的方法,这里为了方便描述,把顺序表中的元素类型统一规定为String类型。 boolean add(String e); 将给定的元素插入到顺序表的尾部。 void add(int index, String e); 在指定位置插入给定元素。 String remove(int index); 删除指定位置的原创 2021-03-06 08:56:42 · 285 阅读 · 0 评论 -
时间复杂度与空间复杂度
对一个程序或算法来说,评估它的运行效率主要从两个方面来考虑,一个是时间上的开销,一个是空间上的开销。时间方面指的是程序的运行时间,称为时间复杂度 ,空间方面指的是程序在运行时使用计算机内存的大小,称为空间复杂度。 一、时间复杂度 算法中执行基本操作的次数称为算法的时间复杂度。 对于算法复杂度,一般采用大O渐进表示法。 用个例子演示一下什么是大O渐进表示法。 对于一个函数f(n) = 3n^2 + 10n + 5,采用大O渐进表示法为O(n^2). 也就是对于一个函数表达式,保留其最高次项,忽略其他项,同时忽原创 2021-03-05 21:17:44 · 476 阅读 · 1 评论
分享