Java实现单向链表及其相关操作
单向链表介绍单向链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素,其节点主要由元素和指向下一节点的指针组成。本文仅为个人学习的记录,仅供参考。相关操作介绍本文主要实现以下操作:链表的生成判断链表是否为空链表的清空节点的插入头插法尾插法节点的删除返回第i个结点返回链表的节点个数根据给定值,返回该值在链表出现的第一个位置代码节点类package linklist; ...
单向链表介绍单向链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素,其节点主要由元素和指向下一节点的指针组成。本文仅为个人学习的记录,仅供参考。相关操作介绍本文主要实现以下操作:链表的生成判断链表是否为空链表的清空节点的插入头插法尾插法节点的删除返回第i个结点返回链表的节点个数根据给定值,返回该值在链表出现的第一个位置代码节点类package linklist; ...
在之前的文章:排序算法——冒泡排序 中,我们描述了传统冒泡排序的过程及其实现,那么,有没有可以改进的地方呢,肯定是有的。假如在数组本身就已经排序好的情况下,或者经过一定的循环之后数组已经被排好了,此时接下来的循环就是在浪费时间,那么如何去解决过程这里引入一个变量isChange记录是否发生交换,如果未发生交换,说明数组已经被排好,此时即可结束循环。具体实现过程看下面代码,理解起来并不难。Ja...
介绍归并排序是创建在归并操作上的一种有效的排序算法,效率为O(nlogn),1945年由冯·诺伊曼首次提出。归并排序算法主要依赖归并(Merge)操作。归并操作指的是将两个已经排序的序列合并成一个序列的操作。本文主要介绍递归法。时间复杂度:最好情况:O(nlogn)平均情况:O(nlogn)最坏情况:O(nlogn)稳定性:稳定额外的空间:O(n)过程递归操作将待排序元素分为大致相同的两个子...
介绍快速排序是由东尼·霍尔所发展的一种排序算法,该算法采用了“分治思想”,同时快速排序由于排序效率在同为O(n*logn)的几种排序方法中效率较高,因此经常被采用。时间复杂度:最好情况:O(nlogn)平均情况:O(nlogn)最坏情况:O(n^2)稳定性:不稳定(不稳定发生在基准元素flag与arr[index+1]交换时)额外的空间:O(logn)~O(n)过程从序列中将某一个元素(通常...
介绍插入排序是一种简单直观的排序算法,其工作原理类似于人们对扑克牌的排序。时间复杂度:最好情况:O(n)平均情况:O(n^2)最坏情况:O(n^2)稳定性:稳定额外的空间:O(1)过程将第一个元素认定为已经被排序从第二个元素开始,取出元素,将取出的元素由后向前与其前面的元素进行比较若取出元素小于该元素,则继续向前扫描,直到取出元素小于或等于该元素将取出元素插在该元素后面重复步骤2~4直至所有...