![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法分析
qwerdf940107
这个作者很懒,什么都没留下…
展开
-
数据结构与算法分析-Java描述(1)
主要就是来贴学习代码的,视频中使用面向对象的思想,设计了基于java语言的一些基本线性结构,分别有面向对象的数组,栈,队列,单链表,循环链表,双向链表(非循环和循环)还有递归的两个好玩的实例。栈 public class MyStack { int[] elements; public MyStack() { elements = new int[0]; } //压...原创 2018-10-30 16:21:21 · 142 阅读 · 0 评论 -
数据结构与算法分析-Java描述(2)-交换排序
交换排序有两种算法:冒泡排序和快速排序冒泡排序 原理:比较两个相邻的元素,将值大的元素交换至右端。 该排序算法较为简单,直接贴代码了 public static void bubbleSort(int[] arr) { //控制共比较多少轮 for(int i = 0;i<arr.length-1;i++) { for(int j = 0;j<arr.leng...原创 2018-11-01 10:35:47 · 70 阅读 · 0 评论 -
数据结构与算法分析-Java描述(2)-插入排序
插入排序有两种算法:直接插入排序和希尔排序直接插入排序 原理:插入即表示将一个新的数据插入到一个有序数组中,并继续保持有序。该排序算法的外部循环为遍历全部元素,内部循环为遍历当前外部循环记录元素的前面所有数字。public static void insertSort(int[] arr) { for(int i = 1;i < arr.length;i++) { ...原创 2018-11-01 14:28:51 · 115 阅读 · 0 评论 -
数据结构与算法分析-Java描述(2)-选择排序
选择排序有两种算法:简单选择排序和堆排序选择排序原理:一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。循环遍历只记录角标不进行交换,当循环遍历结束后进行交换。public static void selectSort(int[] arr) { for(int i=0;i<arr.length;i++) { int...原创 2018-11-02 10:07:27 · 147 阅读 · 0 评论 -
数据结构与算法分析-Java描述(2)-归并排序
归并排序原理:归并排序是利用归并的思想实现的排序方法,该算法采用经典的分治策略,分而治之,将无序的原始数据分开排序后,再将若干个已排好序的部分合并成一个有序的部分。该算法需要申请空间,每一次操作后都需要记得移动角标向后存储,最后再将其放回原始数组。算法采用递归实现,分开处理最后归并,分而治之。归并排序:public static void mergeSort(int[] arr,i...原创 2018-11-02 10:24:49 · 137 阅读 · 0 评论 -
数据结构与算法分析-Java描述(2)-基数排序及队列优化型
基数排序原理:基数排序是一种“分配式排序”,又称桶排序,即通过将所有数据元素分配到应在的位置最后再覆盖到原数组完成排序。该排序算法就是按照个十百千万这样进行分配,每一次都排一位,按照数组中最大长度数的位数作为次数进行比较。public static void radixSort(int[] arr) { //存数组中最大的数字 int max = Integer.MIN_VALUE...原创 2018-11-02 11:15:58 · 108 阅读 · 0 评论 -
数据结构与算法分析-Java描述(3)-二叉树概述
二叉树作为数据结构中的一种,是树的一种特殊结构。其具备许多树结构:根节点(1)、双亲节点、子节点、路经、节点的度(子的个数)、节点的权(存储数字)、叶子节点(无子节点的节点)、子树、层、树的高度(最大层数)、森林。(具体含义自行百度吧)满二叉树:所有的叶子节点都在最后一层,而且节点的总数为个(n为树的高度),n层有个。完全二叉树:所有叶子节点都在最后一层或者倒数第二层,且最后一层的叶子...原创 2018-11-07 17:24:22 · 127 阅读 · 0 评论