![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
我是小水杯
坚持就是胜利
展开
-
九大排序算法-归并排序
1. 图示过程(1) 归并排序的流程(2) 合并两个有序数组的流程2. 动图展示3. Java代码实现public static void mergeSort(int[] arr) { sort(arr, 0, arr.length - 1);}public static void sort(int[] arr, int L, int R) { ...转载 2019-11-19 10:58:36 · 203 阅读 · 0 评论 -
九大排序算法-插入排序
插入排序是通过保证前n位是有序的,当第n+1位需要插入时,反向扫描前n位的大小,碰到大于该数的就向后移动一位,直到小于该数停止,即需要插入的位置。示意图:代码实现: public static void insert(int[] arr) { for (int i = 1; i < arr.length; i++) { int tmp =...原创 2019-11-19 09:37:06 · 78 阅读 · 0 评论 -
九大排序算法-冒泡排序
冒泡排序是一种通过后面相邻两个元素依次比较大小,并将最大(最小)值往后移动,从而实现排序的一种方式。代码实现: public static void bubble(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length...原创 2019-11-18 23:22:12 · 150 阅读 · 0 评论 -
九大排序算法-选择排序
选择排序是先选定一个数据元素,然后依次和后面的元素进行比较,找到最大(最小)值,然后交换两个元素的位置。示意图: public static void select(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { int minIndex = i; fo...原创 2019-11-18 22:45:33 · 439 阅读 · 0 评论 -
九大排序算法-快速排序
冒泡排序是一种前后依次比较大小,将最大(最小)值依次移动到最后的一种方式。示意图: public static void bubble(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++)...原创 2019-11-18 22:44:23 · 157 阅读 · 0 评论 -
数据结构-队列
1. 概念前面一个篇博客介绍了栈,现在来介绍一下队列,它和栈有一定的相似度,可以看完两个之后对比记忆。队列是一个先进先出的数据结构,允许插入的一端称为队尾,允许删除的一端称为对首,示意图如下。和栈一样,可以基于数组和链表实现队列。2. 队列的实现2.1 基于数组示意图:代码实现:public class ArrayQueue { private Object[] da...原创 2019-11-18 20:12:48 · 166 阅读 · 0 评论 -
数据结构-栈
1.概念栈是一种先进先出的数据结构,其中有两个关键的位置:栈顶和栈底。当需要出栈时,只需将栈顶元素取出并将原来的栈顶元素指针向前移动。压栈时,只需将栈顶位置指向新的元素。具体的示意图如下:栈的实现可以基于两种常见的数据结构:数组和链表2. 栈的实现2.1 基于数组示意图:代码实现(java版):public class ArrayStack { private Objec...原创 2019-11-17 13:01:56 · 239 阅读 · 0 评论 -
数据结构-链表
1.概念在前面的博客数据结构-数组中,可以看到数组虽然查询比较快,但是插入和删除元素的效率并不高,而且创建一个数组之后不能修改其长度,有什么数据结构可以解决数组的这些缺点吗?有,这个就是本篇需要介绍的数据结构-链表,不过它的查询效率并不高,在后面我们会介绍。链表也是一种常见的数据结构,它不是线性存储数据,而是通过前一个元素保存后一元素的引用从而形成一条链。不过链表可以分为多种类型链表,常见的有...原创 2019-11-16 23:51:35 · 336 阅读 · 0 评论 -
数据结构-数组
1. 概念数组是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同类型的数据。数组是最常见的数据结构,表示方式比较简单int[] arr = {12,1,-9,90};2. 基本操作2.1 查询元素 int[] arr = {12, 1, -9, 90}; // -9 System.out.println(arr[2]);...原创 2019-11-16 21:27:57 · 202 阅读 · 0 评论