![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
利用java语言实现了几种重要的数据结构和java集合
小谢的贺猪猪
小白加油
展开
-
图解快速排序
快速排序前言快速排序是什么?图解快速排序第一轮,第二轮第三轮总结前言 快速排序是应用相当广泛的排序算法,在Java的java.util.Arrays这个类里面的sort()方法就是使用的快速排序,其内部是调用了一个类的静态方法DualPivotQuicksort.sort(),此类实现了Vladimir Yaroslavskiy,Jon Bentley和Josh Bloch的Dual-Pivot Quicksort算法。 该算法可在许多数据集上提供O(n log(n))性能,这会导致其他原创 2020-12-25 00:44:55 · 604 阅读 · 1 评论 -
插入排序
插入排序我们都玩过扑克牌,会将某张牌抽出来,插入到适合的位置。插入排序的当前索引的左边的元素都是有序的,但是这个有序序列,并不是最终序列,直到索引来到数组的最右边位置。插入排序,可能会涉及到元素的移动。在选择排序中,算法的复杂度永远是O(N*N级别的),而插入排序的时间复杂度,会根据输入元素的初始顺序而决定的。如果对一个已经有序的数组进行插入排序,那么会立即发现,每个元素已经在自己合适的位置上了。对下面数组进行插入排序第一轮,i=0;j=i+1,内层循环执行j–的操作,将当前元素arr[j],去原创 2020-12-24 19:25:25 · 113 阅读 · 1 评论 -
选择排序
选择排序选择排序是最简单的排序算法。算法思想非常的简单:①先找到数组中最小的那个元素,将他和数组的第一个元素交换位子。② 在剩下的元素中找到最小的元素,并且与第一个最小元素的右边第一个元素交换位置,如此反复。每次都在剩余的元素中去寻找最小元素。如数组 [10,1,3,4,2,8,9]进行排序使用minIndex变量记录最小值的下标。每一轮都能找到最下值。如果 最小值下标发生了变化,就交换两个数组.第一轮: 外层循环:i=0; minIndex=i;内层循环从j=i+1开始, 进行arr原创 2020-12-24 16:58:32 · 84 阅读 · 1 评论